close
Warning:
Can't synchronize with repository "(default)" (Unsupported version control system "svn": /usr/lib/python2.7/dist-packages/libsvn/_core.so: failed to map segment from shared object: Cannot allocate memory). Look in the Trac log for more information.
- Timestamp:
-
Jul 17, 2009, 1:51:18 PM (17 years ago)
- Author:
-
waue
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
|
v2
|
v3
|
|
| 1 | | = Java的 介面、類別 = |
| | 1 | = Java的 類別、抽象、介面 = |
| 2 | 2 | |
| | 3 | == 類別 == |
| 3 | 4 | * 類別是實體的,因此他可以繼承(extends),並且可以用new 來產生 |
| 4 | 5 | |
| … |
… |
|
| 21 | 22 | }}} |
| 22 | 23 | |
| | 24 | == 介面 == |
| 23 | 25 | |
| 24 | 26 | * 介面為需要實做的類別,因此無法用new產生,且無法用extends繼承 |
| … |
… |
|
| 38 | 40 | }}} |
| 39 | 41 | |
| 40 | | |
| | 42 | == 抽象類別 == |
| 41 | 43 | * abstract 為抽象類別:當您定義類別時,可以僅宣告方法名稱而不實作當中的邏輯,這樣的方法稱之為「抽象方法」(Abstract method),如果一個類別中包括了抽象方法,則該類別稱之為「抽象類別」(Abstract class),抽象類別是個未定義完全的類別,所以它不能被用來生成物件,它只能被擴充,並於擴充後完成未完成的抽象方法定義。 |
| 42 | 44 | * 無法使用new,只能 extends 繼承來擴充之,一旦將繼承來的abstract方法都實做完成,此類別就可以被繼承 |
| 43 | 45 | * 因此如果我的類別裡,有用到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(); 就很實用了 |