| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java 多态 -> 正文阅读 |
|
[Java知识库]Java 多态 |
目录 1 概念同一个事物,在不同情况下表现出来的不同属性。 比如 : 猫是动物, 狗也是动物,动物在不同的情况表现出来得属性不一样,这就构成了多态。 在代码中的特征就是 父类修饰了子类。 2 多态的前提条件
注意: ????????第三点是关键特征。 3 多态成员的访问特点3.1 构造方法:同继承一样,子类会通过super 访问父类构造方法 3.2 成员变量:编译看左 , 执行看左 解释:调用的变量在父类中不存在的时候,?编译报错不通过, 执行报错; ???????????调用的变量在父类中存在的时候,结果指向父类变量值。 3.3 成员方法:编译看左, 执行看右 解释:调用方法在 父类中存在?,在子类存在,编译通过,执行通过,方法执行子类; ??????????调用方法在 父类中存在?,在子类不存在,编译通过,执行报错; ? ? ? ? ? 调用方法在 父类中不存在 ,编译不通过; 注意: ????????同一个方法名 子类父类都有, 所以 子类一定会 重写父类的方法。 ????????成员变量和 成员方法执行的 不一样的 原因: 成员方法有重写, 成员变量没有重写。 4 多态的优点和缺点4.1 优点提高了代码的拓展性。这里指的是父类的对象可以接收任意子类的对象 4.2 弊端不能调用子类特有的成员方法。也就是父类没有的成员方法的时候没法正常编译。 弊端的解决办法,是向下转型。也就是强制转换。例如: cat c = (cat)d; Fu f = new zi() 相当于向上转型,和基本类型中的隐式转换 类似 5 多态强制转换出现的异常出现 ClassCastException 类型转换异常,对应的实际类型和目标类型不是同一种类型。 解决办法是: ????????用 instanceof 用来判断是否能强制转型的。
小转大, 范围小的往范围大的转, 系统自动转 大转小, 范围大的往范围小的转, 需要强制转换 书写格式
6 多态应用场景多态更多应用在方法传递参数的时候, 用父类修饰形参, 调用方法的时候只要是子类方法就可以传入。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 5:55:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |