多态:
(1)同一个对象在不同时刻表现出的多种状态
理解:编译时期状态和运行时期状态不一致的现象
(2)多态的前提:
A:要有继承或者实现关系
B:要有方法重写
因为一般都是抽象类或者接口的多态
C:要有父类/父接口的引用指向子类对象
(3)多态访问的成员特点:
Fu f = new Zi();
A:成员变量
编译看左边,运行看左边
B:成员方法
编译看左边,运行看右边
C:静态方法
编译看左边,运行看左边
(4)多态的好处和弊端:
A:好处
提高程序的可维护性和可扩展性
维护性:继承保证
扩展性:多态保证
B:弊端
父类/父接口不能访问子类特有功能(解决办法:向下转型)
(5)多态中的类型转换:
A:向上转型
Fu f = new Zi ();
B:向下转型
Zi z = (Zi) f;
(6)多态的体现形式:
A:具体类多态
class Fu{}
class Zi extends Fu{}
Fu f = new Zi();
B:抽象类多态
abstract class Fu {}
class Zi extends Fu {}
Fu f = new Zi ();
C:接口多态
interface Inter ()
//接口的实现类命名:接口名+Impl
class InterImpl implements Inter{}
Inter i = new InterImpl ();
原文地址:https://www.cnblogs.com/mxj961116/p/10393222.html