天天看點

基礎第一階段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;
    } 
}
           

向下轉型注意事項:

最多隻能向下轉成本身或其父類,不能轉成其他類,即使是子類也不行。