Java基础进阶_03

多态:

格式:

父类名称 对象名称 = new 子类构造器;

接口名称 对象名称 = new 实现类构造器;

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

多态识别技巧:

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

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

(左边是父类,右边是子类)

使用前提:

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

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

3.需要存在方法重写

多态的优势:

1.右边可以实现组件化切换,业务功能也随之切换,便于维护和扩展,可实现类与类之间的解耦

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

劣势:

当子类想调用自己独有的方法时,编译看左边,说明父类中必须要有此方法,不然编译阶段就报错。

如何解决劣势:

使用引用类型的强制类型转换。大范围转小范围需要强制转换。由父类类型转为子类类型需要强转。

有继承/实现关系的两个类型就可以实现类型转换,编译阶段一定不会报错,但运行阶段可能报ClassCastException

建议在转换之前先判断变量的真实类型,语法:变量 instanceof 类型

前者是后者的类型或者其子类类型才会返回true

猜你喜欢

转载自www.cnblogs.com/superyucong/p/12637815.html