要給學生們講卷子,不知道這個轉型問題怎麼講,搜了幾個例子,才發現這個例子最合适,也好懂。

class Chinese
{
public static void print()
System.out.println("this is 中國人");
}
}

class Guangdongren extends Chinese
System.out.println("this is 廣東人 ");

class HunanRen extends Chinese
System.out.println("this is 湖南人 ");

class GuangzhouRen extends Guangdongren
System.out.println("this is 廣州人 ");

public class Test
public static void main(String args[])
Chinese c=new Chinese();//這樣編譯可以通過,但運作會抛出異常
HunanRen h=(HunanRen)c;// 這是因為向下轉型錯誤,中國人不一定是湖南人,這裡
//是不是可以這樣了解要将c強制轉換成一個HunanRen
HunanRen h=new HunanRen();//這樣就沒有問題,這是向上轉型,
Chinese c=(Chinese)h; //湖南人一定是中國人這是是否可以了解為将h轉換成Cinese
Chinaese h=new HunanRen();//向上轉型
h.print();
}
}