多态的向上转型和向下转型
向上转型:
-
向上转型本质:父类的引用指向了子类的对象。
-
语法:父类类型 引用名 = new 子类类型();
-
特点:编译类型看左边,运行类型看右边。可以调用父类中所有的成员 (需遵守访问权限),不能调用子类中特有的成员(多态的弊端)。
向下转型:
-
语法:子类类型 引用名 = (子类类型) 父类引用;
例如:Animal animal = new Dog();
Dog dog = (Dog) animal; (高转低,强制转换)
-
向下转型的前提是父类的引用必须指向的是当前目标类型的对象
-
只能强转父类的引用,不能强转父类的对象
-
可以调用子类类型中所有的成员