public Aminal {}
public Dog extends Animal{}
Java的转型也多态的一种表现。
向上转型: 父类的对象指向子类引用
Animal a = new Dog();
这种是向上转型。
反之,
向下转型:
Ainmal a = new Animal();
Dog d = (Dog) a;
这种是向下转型, 不过这种编译没错,运行时会报ClassCastException。因为你可以说狗是动物,但不一定动物就是狗。
public Aminal {}
public Dog extends Animal{}
向上转型: 父类的对象指向子类引用
Animal a = new Dog();
这种是向上转型。
反之,
向下转型:
Ainmal a = new Animal();
Dog d = (Dog) a;
这种是向下转型, 不过这种编译没错,运行时会报ClassCastException。因为你可以说狗是动物,但不一定动物就是狗。