Java 多态 解析

57 阅读1分钟

多态

  • 编译时多态 方法重载
  • 运行时多态 程序运行时动态决定调用的方法(大多是指运行时多态)

多态的条件

  • 满足继承关系
  • 父类的引用指向子类的对象
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 判断是否属于
  }
}