搜尋此網誌

2012年3月8日 星期四

Java 物件轉型

Animal ani = new Dog();
隱性轉型,此時的ani變數只可使用Animal類別提供的方法,
無法使用Dog類別的方法.
(可以大容器裝小物件)

Dog dg1 = new Animal();
(小容器裝大物件,會產生編譯錯誤)

Dog dg2 = (Dog)ani;
明確轉型,此時我們指定animal就是dog.
這是多型的用法,假如有一個cat類別也繼承animal,
也可轉型為cat來使用.

如果不確定執行時期的物件是哪一個類別的實體,
可以使用instanceOf這個方法來判斷,以避免丟出

沒有留言:

張貼留言