多态:事物存在的多种形态,多态前提
- 要有继承关系
- 要有方法重写
- 要有父类的引用指向子类对象
Person p=new Student("李四",33,"jj");
对于相同的成员变量,编译看左边,运行看左边
Father f=new Son();
class Father{
public int num=10;
}
class Son extends Father{
public int num=20;
}
静态方法,编译看左边运行看左边,静态和类相关,算不上重写
成员方法:编译看左边运行看右边绑定
向上转型和向下转型
向上转型:父类引用指向子类对象,就是向上转型
多态的弊端:不能使用子类特有的属性和行为
好处:提高了代码的可维护性,提高了代码的可扩展性
关键字:instanceof判断前边的引用是否是后边的数据类型