/*
* 多态中的向上转型和向下转型:
*
* 引用类型之间的转换
* 向上转型
* 由小到大 自动(子类型转换成父类型)
* 向下转型
* 由大到小(强制类型转换)
*
* 基本数据类型的转换
* 自动类型转换
* 由小到大
* byte short char --- int --- long --- float --- double
* 强制类型转换
* 由大到小
*/
public class PoymorphicDemo3 { public static void main(String[] args) { Animal a = new Dog();//向上转型 a.eat(); Dog d = (Dog)a;//向下转型,可以使用子类特有的方法 d.swim(); } } class Animal { public void eat() { System.out.println("吃东西"); } } class Dog extends Animal { @Override public void eat() { System.out.println("啃骨头"); } public void swim() { System.out.println("狗刨"); } }
输出