基础第一阶段day10——对象向下转型重要注意事项

public class Ye {
    String name = "爷爷";

    public void method() {
        System.out.println("爷爷类");
    }
}
public class Fu extends Ye{
    String name = "父亲";

    public void method() {
        System.out.println("父亲类");
    }
}
public class Zi extends Fu{
    String name = "儿子";

    public void method() {
        System.out.println("儿子类");
    }
}
public class Test {
    public static void main(String[] args) {
      
        Ye ye1 = new Fu();  //本身是Fu,当做Ye使用
        Fu fu = (Fu) ye1;//本身是Fu,还原成Fu

		Ye ye2 = new Fu();
        //本身是Fu,还原成Zi,报错类转换异常
        //Exception in thread "main" java.lang.ClassCastException:
        //cn.itcast.day10.HomeWork04.Fu cannot be cast to cn.itcast.day10.HomeWork04.Zi
         //Zi zi=(Zi)ye2;

        Ye ye3=new Zi();
        Zi zi=(Zi)ye3;
        Fu fu2=(Fu)ye3;
    } 
}

向下转型注意事项:
最多只能向下转成本身或其父类,不能转成其他类,即使是子类也不行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值