並參考1:良葛格-抽象方法、抽象類別
參考3:Gossip@Openhome
參考4:Davidou's Blog-[Java]6.抽象(Abstract)與介面(Interface)
參考5:Java 介面(Interface)與抽象類別(Abstract class)的差異
參考5:Java 介面(Interface)與抽象類別(Abstract class)的差異
如果一個class裡有一個抽象方法abstract method,那這個類別就必須定義為抽象類別abstract class 。
1 2 3 4 5 6 |
在NetBeans IDE 8.1中,abstract class圖案會變灰的,下面可看到Role.java圖案是灰色:
什麼時候才會用到abstract method?
如果當一個method並沒有實作內容時,內容為空,就可把此method做成abstract method。
- 可當成父類別 (superclass) 給子類別 (subclass) 繼承 (inherit) 。
- 不能被實體化。像上述程式碼如Role role = new Role(); 會無法編譯!abstract method也是一樣不能new,它只能被擴充,並於擴充後完成未完成的abstract method定義!
- 如一個繼承了abstract class的subclass,如沒實作abstract class中的abstract method,那該子類別需定義成abstract class,請看例1。
例1:
1 2 3 4 5 6 |
沒有留言:
張貼留言