多态
- 编译时多态 方法重载
- 运行时多态 程序运行时动态决定调用的方法(大多是指运行时多态)
多态的条件
- 满足继承关系
- 父类的引用指向子类的对象
public class Test{
public static void main(){
Animal animal = new Animal();
// 父类的引用 指向子类的对象
// 向上转型 自动转型 隐式转型
// 可以调用子类重写的父类的方法以及父类派生的方法 子类自己特有的方法没有办法调用
Animal a1 = new Cat();
Animal a2 = new Dog();
// 向下转型 强制类型转换
// 子类引用指向父类对象 可以调用子类特有方法
Cat c1 = (Cat)a1;
// 必须满足转型条件才能完成强转
// Cat c2 = (Cat)a2; 报错
// instanceof 判断是否属于
}
}