多态性

面向对象特征之三:多态性

1.理解多态性: 可以理解为一个事物的多种形态。
2.何为多态性:
对象的多态性:父类的引用指向子类的对象
3. 多态的使用:虚拟方法调用
有了对象的多态性以后,在编译期,只能调用父类中声明的方法,但在运行期,实际执行的是子类重写父类的方法。
总结:编译看左边,运行看右边
4. 多态性的使用前提: ①类的继承关系 ②方法的重写
5. 对象的多态性只适用于方法,不适用于属性


有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法,但是由于变量声明为父类类型,导致编译时,只能调用父类中声名的属性和方法。子类特有的属性和方法不能调用。
如何才能调用子类特有的属性和方法?
向下转型:使用强制类型转换
Person p = new Man();
Man m = (Man) p;
使用强转时,可能会出现ClassCastException的异常。


instanceof关键字的使用
a instanceof A:判断对象a是否是类A的实例。如果是,返回true;如果不是,返回false

使用情境:为了避免在向下转型时出现ClassCastException的异常,我们在向下转型之前,先进行instanceof的判断,一旦返回true,进行向下转型,否则不进行向下转型。

如果a instanceof A 返回true,则 a instanceof B也返回true
其中B是类A的父类


__EOF__

本文作者日之出
本文链接https://www.cnblogs.com/risingsun-ymt/p/16133142.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   日之出  阅读(411)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示