面向对象-多态-2

面向对象-多态-2

//父类    动物
public class Animal {
    public void eat(){
        System.out.println("动物吃东西.");
    }
}
//------------------
//子类    猫
public class Cat extends Animal {
    @Override
    public void eat() {
        System.out.println("猫吃鱼.");
    }
    public void playGame(){//子类的独特方法
        System.out.println("猫捉迷藏.");
    }
}
//------------------
//测试类
public class AnimalDemo {
    public static void main(String[] args) {
        /*
向上转型: 从子到父
           父类引用指向子类对象
向下转型: 从父到子
            父类引用转为子类对象
         */
        Animal a = new Cat(); //向上转型
        a.eat();
//     animal.playGame();不能用子类的特有方法.
        Cat c = (Cat)a; //向下转型, 父类型强转成子类型
        //不用再造对象的情况下, 可以调用子类的独特方法
        c.playGame();

    }
}


ClassCastException 类型转换异常

posted @ 2023-01-28 19:44  大宝贝94106  阅读(32)  评论(0)    收藏  举报