Java对象的转型

父类引用子类对象,我们称这个过程为向上转型,属于自动类型转换。

向上转型后的父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法。这时,我们就需要进行类型的强制转换,我们称之为向下转型!

在向下转型过程中,必须将引用变量转成真实的子类类型(运行时类型)否则会出现类型转换异常ClassCastException。

package learn;

public class Polym {
    public static void main(String[] args) {
        // 动物叫
        Animal ani = new Animal();
        animalShout(ani);
        // 狗叫
        Animal dog = new Dog(); // 向上转型(自动转型)
        animalShout(dog);
        Dog dog1 = (Dog) dog; // 向下转型(强制转型)
        animalShout(dog1);
    }

    static void animalShout(Animal a) {
        a.shout();
    }
}

class Animal {
    public void shout() {
        System.out.println("Aoao~");
    }
}

class Dog extends Animal {
    public void shout() {
        System.out.println("woof~");
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值