java学习之高级语法(五)----- 多态

简介: java学习之高级语法(五)----- 多态

 多态性指的是对象而不是类

对象的多态性指的是:一个对象拥有多种形态

代码中体现多态性其实就是一句话:父类引用指向子类对象

格式:

父类名称  对象名 = new 子类名称();

或者

接口名称  对象名 = new 实现类名称();

访问成员变量的两种方法:

1. 直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上查找

2. 间接通过成员方法访问成员变量:看方法属于谁,优先用谁,没有则向上查找

    子类没有覆盖重写就是父类

    子类覆盖重写了就是子类

在多态的代码中,成员方法的访问规则是:看new 的是谁,就优先用谁,没有则向上查找

口诀:编译看左 ,运行看右 。

对比:

成员变量   ---  编译看左边,运行还看左边

成员方法  ---  编译看左边,运行看右边

多态的好处:

image.gif编辑

向上转型一定是安全的,没有问题的,正确的。但是也有一个弊端:对象一旦向上转型为父类,那么就无法调用子类原本特有的内容。

解决方案:用对象的向下转型【还原】

image.gif编辑

如何才能知道一个父类引用的对象,本来是什么子类?

格式:   对象  instanceof  类名称

这样写将会得到一个boolean值结果,也就是判断前面的对象能不能当做后面类型的实例。

接口多态的综合案例 --- 笔记本电脑

背景描述:笔记本电脑通常具备使用USB设备的功能。在生产时,笔记本都预留了可以插入USB设备的USB接口,但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。

案例描述:定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想在电脑上使用也必须遵守USB规范,实现USB接口,否则鼠标和键盘生成出来也无法使用。

案例分析:

1. USB接口 --- 包含打开设备功能、关闭设备功能

image.gif编辑

2. 笔记本类 --- 包含开机功能、关机功能、使用USB设备功能

image.gif编辑

3. 鼠标类 --- 要实现USB接口并具备点击的方法

image.gif编辑

4. 键盘类 --- 要实现USB接口并具备敲击的方法

image.gif编辑

重点:

1. 接口的基本使用

2. 对象的上下转型

3. 接口作为参数


相关文章
|
2月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
51 1
|
2月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
35 2
|
22天前
|
Java
java do while 的语法怎么用?
java do while 的语法怎么用?
36 3
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
33 1
|
2月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
30 1
|
2月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
Kotlin语法笔记(28) -Kotlin 与 Java 混编
34 2
|
2月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
34 0
|
存储 算法 Java
Java8语法最佳实践-什么是对象(上)
计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写作,绘画,雕塑,动画和电影制作。编程语言就是创建应用程序的思想结构。
165 0
Java8语法最佳实践-什么是对象(上)