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


相关文章
|
1天前
|
Java
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
34 15
|
2天前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
22 4
|
2天前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
19 4
|
2天前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
10 1
|
1月前
|
Java
java do while 的语法怎么用?
java do while 的语法怎么用?
51 3
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
3月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
57 1
|
存储 算法 Java
Java8语法最佳实践-什么是对象(上)
计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写作,绘画,雕塑,动画和电影制作。编程语言就是创建应用程序的思想结构。
175 0
Java8语法最佳实践-什么是对象(上)
|
存储 安全 Java
Java8语法最佳实践-什么是对象(下)
计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写作,绘画,雕塑,动画和电影制作。编程语言就是创建应用程序的思想结构。
105 0