多态的基础

面向对象的三大特征:封装、继承、多态

父类类型范围>子类类型范围

多态的概念:

同一个类型的对象,执行同一个行为,在不同的状态下会表现出不同的行为特征

多态的识别技巧:

对于方法的调用:编译看左边,运行看右边

对于变量的调用:编译看左边,运行看左边

多态的使用前提:

1.必须存在继承或实现关系

2.必须存在父类类型的变量引用子类类型的对象

3.需要存在方法重写

优势:

在多态形式上,右边对象可以实现组件化切换,业务功能也随之改变,便于扩展和维护。可以实现类与类的解耦;

实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,可以传入一切子类对象进行方法的调用,更能体现出多态的扩展性和便利。

Java建议在进行强制类型转换,编译阶段一定不报错!

但是运行阶段可能出现:类型转换异常ClassCastException

Java建议在进行强制类型转换之前先判断变量的真实类型,在强制类型转换!

变量 instance of 类型:判断前面的变量是否是或者其子类类型才会返回true

弊端:不能直接调用子类的独有功能 ,所以要进行强制类型转换

为了解决多态的弊端,那么就要判断强制类型转换时的真实类型

格式:if(变量 instance of 真实类型){

真实类型 对象名称 = (真实类型) 之前的对象名称;

}

总结:有继承或者实现的两个类型就可以进行强制类型转换,编译阶段一定不会报错

但是运行阶段可能会实现:类型转换异常 ClassCastException

Java建议在进行强制类型转换转换之前先判断变量的真实类型,在进行强制类型转换。

变量 instanceof 类型:判断前面的变量是否是后面类型或者是其子类才会返回true

问题:面向对象思想设计一个电脑对象,可以接入两个USB设备

(鼠标、键盘  实现接入,调用独有功能,拔出)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容