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. 接口作为参数


相关文章
|
29天前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
45 1
|
1月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
32 2
|
1月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
88 43
Java学习十六—掌握注解:让编程更简单
|
16天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
24天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
29天前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
22 1
|
29天前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
21 1
|
1月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
Kotlin语法笔记(28) -Kotlin 与 Java 混编
25 2
|
1月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
29 0
|
4月前
|
搜索推荐 Java 编译器
【Java探索之旅】多态:重写、动静态绑定
【Java探索之旅】多态:重写、动静态绑定
31 0
下一篇
无影云桌面