多态-转型

向上转型:父类引用变量指向子类对象。

向下转型:将向上转型的变量再转回本类型。不能直接对父类对象进行向下转型。

abstract class Animal{
    public abstract void eat();
}

abstact class Cat extends Animal{
    public void eat(){
        System.out.println("吃鱼");
    }
    public void catchMouse(){
        System.out.println("抓老鼠");
    } 
}

class Test{
    Animal a = new Cat();    //向上转型
    a.eat();

    Cat c = (Cat)a;        //向下转型
    c.catchMouse();

    public static void function(Animal a) {
		a.eat();
		if(a instanceof Cat) {
			Cat c = (Cat)a;
			c.catchMouse();
		}else if (a instanceof Dog) {
			Dog d = (Dog)a;
			d.kanJia();
		}		
	} 
}

猜你喜欢

转载自blog.csdn.net/qq_36749500/article/details/84892466
今日推荐