1.如何理解多态性?
理解:理解为一个事物的多种形态。
2.JAVA中多态性的体现:
- 子类对象的多态性:父类的引用指向子类的对象。(或子类的对象赋给父类的引用)
比如:Person p2 = new Man();
3.多态性的应用:虚拟方法调用
- 在多态的场景下,调用方法时。
编译时,认为方法是左边声明的父类的类型的方法(即被重写的方法)
执行时,实际执行的是子类中重写的方法。
简称为:编译看左边,执行看右边。
4.多态性的使用前提
- 要有类的继承关系
- 要有方法的重写
5.多态的适用性
- 适用于方法,不适用于属性
6.多态的好处与弊端
-
弊端:在多态的场景下,我们创建了子类的对象,也加载了子类特有的属性和方法。但是由于声明为父类的引用,导致我们没有办法直接调用子类特有的属性和方法。
-
好处:极大地减少了代码的冗余,不需要定义多个重载的方法。
7.向上转型和向下转型
- instanceof的使用:
①.建议在向下转型之前,使用instanceof进行判断,避免出现类型转换异常
②.格式: a instanceof A : 判断a是否是类A的实例。
③.如果 a instanceof A返回true,则 a instanceof superA 返回也是true.其中superA是A的父类。