java 面向对象之多态(向上转型和向下转型)
☀️1.1 多态基本介绍
多态的介绍:多态与封装和继承
称为面向对象三大特征,多态是建立在封装和继承基础之上的。
☀️1.2 多态的具体体现
1).🌙方法的多态:重写和重载体现多态
https://xie.infoq.cn/article/cf233e13a4ebc193520913725
2).🌙对象的多态
一个对象的编译类型和运行类型可以不一致。
编译类型在定义对象时,就确定了,不能改变。
运行类型是可以变化的(由向下转型体现)。
“=”的左边为
编译类型
,“=”的右边为运行类型
。
动物类 引用名 = new 狗类; //这里,动物类就是编译类型,狗类就是运行类型动物类 引用名 = new 猫类;//我们用父类的引用指向子类
☀️1.3 向上转型与向下转型:
1).🌙向上转型
复制代码
复制代码
此时,我们的引用可以使用父类中所有的属性与方法(访问权限内),当我们需要调用子类中的方法时,怎么解决呢?请看向下转型
2).🌙向下转型
复制代码
复制代码
此时,我们的对象还是第一次定义的 animal(编译类型在定义对象时,就确定了,不能改变),经过向下转型后,又多了一个引用。例如:李华当上市长后,他被人们称为李市长,同时他还是李华。
1.4.☀️多态中的细节
多态的前提:两个对象(类)存在继承关系
属性看编译类型,方法看运行类型
版权声明: 本文为 InfoQ 作者【写代码两年半】的原创文章。
原文链接:【http://xie.infoq.cn/article/a5445d2cf40854b2d91087043】。文章转载请联系作者。
评论