Changes between Version 2 and Version 3 of waue/2009/0717


Ignore:
Timestamp:
Jul 17, 2009, 1:51:18 PM (15 years ago)
Author:
waue
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • waue/2009/0717

    v2 v3  
    1  = Java的 介面、類別 =
     1 = Java的 類別、抽象、介面 =
    22
     3== 類別 ==
    34 * 類別是實體的,因此他可以繼承(extends),並且可以用new 來產生
    45
     
    2122}}}
    2223
     24== 介面 ==
    2325
    2426 * 介面為需要實做的類別,因此無法用new產生,且無法用extends繼承
     
    3840 }}}
    3941
    40 
     42 == 抽象類別 ==
    4143 * abstract 為抽象類別:當您定義類別時,可以僅宣告方法名稱而不實作當中的邏輯,這樣的方法稱之為「抽象方法」(Abstract method),如果一個類別中包括了抽象方法,則該類別稱之為「抽象類別」(Abstract class),抽象類別是個未定義完全的類別,所以它不能被用來生成物件,它只能被擴充,並於擴充後完成未完成的抽象方法定義。
    4244 * 無法使用new,只能 extends 繼承來擴充之,一旦將繼承來的abstract方法都實做完成,此類別就可以被繼承
    4345 * 因此如果我的類別裡,有用到abstract 的method,就是abstract類別
     46 * 回到第一個範例,Father whoami = new Son(); 感覺很無聊,怎麼不Father whoami = new Son(); 就好了,還要惡搞Father & Son ,難道只是用來出考題的?
     47   * 其實如果Father為抽象類別,Son繼承Father並為實做完後的類別,則Son whoami = new Son();當然ok,但若想要僅用Father的參數,只是透過Son以 new出來(Father為抽象類別無法用new),則Father whoami = new Son(); 就很實用了