多态基础知识
- 父类创建的引用指向自己的子类对象。
- 多态的前提:一是需要存在继承或者实现关系。二是要有覆盖方法的存在。
- 通过使用父类的引用指向子类对象来调用子类函数时,要保证父子类中均有该函数。
- 通过使用父类的引用调用子类的特有函数时,将父类(通过子类的构造函数初始化的)的引用强制转换为子类对象。
Father f = new Son();Son s = (Son)f;
- 多态自始至终都是子类对象在做着变化。
多态中成员的变化
- 成员函数:编译时期:查看引用对象所属的类中是否有所调用的成员函数,若有则成功,否则失败。运行时期:查看子类对象所属的类中是否有该函数。
- 成员变量:无论编译还是运行,只看引用变量所属的类。
- 静态成员函数:无论编译还是运行,都要调用引用变量所属类中的静态函数。
- 静态成员变量:无论编译还是运行,只看引用变量所属的类。