面向对象的三大特征:封装、继承、多态
父类类型范围>子类类型范围
多态的概念:
同一个类型的对象,执行同一个行为,在不同的状态下会表现出不同的行为特征
多态的识别技巧:
对于方法的调用:编译看左边,运行看右边
对于变量的调用:编译看左边,运行看左边
多态的使用前提:
1.必须存在继承或实现关系
2.必须存在父类类型的变量引用子类类型的对象
3.需要存在方法重写
优势:
在多态形式上,右边对象可以实现组件化切换,业务功能也随之改变,便于扩展和维护。可以实现类与类的解耦;
实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,可以传入一切子类对象进行方法的调用,更能体现出多态的扩展性和便利。
Java建议在进行强制类型转换,编译阶段一定不报错!
但是运行阶段可能出现:类型转换异常ClassCastException
Java建议在进行强制类型转换之前先判断变量的真实类型,在强制类型转换!
变量 instance of 类型:判断前面的变量是否是或者其子类类型才会返回true.