25.2 多态向上向下类型转换

/*
* 多态中的向上转型和向下转型:
*
* 引用类型之间的转换
* 向上转型
* 由小到大 自动(子类型转换成父类型)
* 向下转型
* 由大到小(强制类型转换)
*
* 基本数据类型的转换
* 自动类型转换
* 由小到大
* 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("狗刨");
    }
}

 

输出

 

posted @ 2019-07-23 22:12  龙桑  阅读(264)  评论(0编辑  收藏  举报