Java基础学习笔记_多态

1、Java中实现多态的步骤

  • 要有继承(实现)关系。
  • 要有方法重写,不然多态就没有意义。
  • 父类引用指向子类对象(is a 的关系)。

2、多态中成员方法的调用

编译看左,运行看右。

  • 编译看左:是指编译时看左边的类型有没有这个成员方法。
  • 运行看右:是指运行时具体用到的是右边类中的该成员方法。

3、多态中成员变量的调用

多态中,成员变量不涉及重写。

编译看左,运行看左。

  • 编译看左:意思是在编译期间会看左边的类型有没有这个成员变量,没有就报错,有就不报错。
  • 运行看左:意思是在运行期间使用的是左边的类型中的这个成员变量。

4、多态的好处

  • 可维护性:基于继承关系,只需要维护父类代码,提高了代码的复用性,大大降低了维护程序的工作量。
  • 可扩展性:把不同的子类对象都当作父类看待,屏蔽了不同子类对象间的差异,做出通用的代码,以适应不同的需求,实现了向后兼容。

5、多态的弊端

不能使用子类特有成员。

当需要使用子类特有功能时,需要进行类型转换

  • 向上转型(自动类型转换):子类型转换成父类型。

Animal animal = new Dog();

  • 向下转型(强制类型转换):父类型转换成子类型。

Dog dog = (Dog)animal;

类型转换的注意事项:

  • 只能在继承层次内进行转换,否则就会报错(ClassCastException)。
  • 将父类对象转换成子类之前,使用instanceof进行检查。

A instanceof B,判断A是不是B类型的实例对象。

猜你喜欢

转载自blog.csdn.net/qq_43191910/article/details/114788304