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;
}
}
向下轉型注意事項:
最多隻能向下轉成本身或其父類,不能轉成其他類,即使是子類也不行。