抽象方法和抽象類
抽象方法:
1、從上面的例子中我們可以看到抽象方法跟普通方法是有區別的,它沒有自己的主體(沒有{}包起來的 業務邏輯),跟介面中的方法有點類似。所以我們沒法直接呼叫抽象方法
2、抽象方法不能用private修飾,因為抽象方法必須被子類實現(覆寫),而private許可權對於子類來 說是不能訪問的,所以就會產生矛盾
3、抽象方法也不能用static修飾,試想一下,如果用static修飾了,那麼我們可以直接通過類名調 用,而抽象方法壓根就沒有主體,沒有任何業務邏輯,這樣就毫無意義了。
抽象類:
1、用abstract關鍵字來表達的類,其表達形式為:(public)abstract class 類名{}
2、抽象類不能被例項化,也就是說我們沒法直接new 一個抽象類。抽象類本身就代表了一個型別,無法 確定為一個具體的物件,所以不能例項化就合乎情理了,只能有它的繼承類例項化。
3、抽象類雖然不能被例項化,但有自己的構造方法(這個後面再討論)
4、抽象類與介面(interface)有很大的不同之處,介面中不能有例項方法去實現業務邏輯,而抽象類 中可以有例項方法,並實現業務邏輯,比如我們可以在抽象類中建立和銷燬一個執行緒池。
5、抽象類不能使用final關鍵字修飾,因為final修飾的類是無法被繼承,而對於抽象類來說就是 需要通過繼承去實現抽象方法,這又會產生矛盾
相關文章
- 介面的行為抽象和抽象類的行為抽象抽象
- 抽象類和介面抽象
- 多型和抽象類多型抽象
- 介面和抽象類 (abstract)抽象
- 抽象類抽象
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- java中抽象類和介面Java抽象
- 介面和抽象類詳解抽象
- Python抽象類Python抽象
- Java 抽象類Java抽象
- 14、抽象類抽象
- Java基礎-抽象類和介面Java抽象
- Java抽象類和介面 小白版Java抽象
- 介面和抽象類的區別抽象
- Java之繼承和抽象類Java繼承抽象
- TypeScript abstract 抽象類TypeScript抽象
- 抽象類VS介面抽象
- 抽象類與介面抽象
- 33_抽象類抽象
- 8 python 抽象類Python抽象
- 21-抽象類抽象
- 抽象類和介面,你瞭解多少?抽象
- 淺談Java抽象類Java抽象
- Java的抽象類 & 介面Java抽象
- 抽象類 & 介面比較抽象
- Python抽象基類abcPython抽象
- 【JAVA】筆記(5)--- final;抽象方法;抽象類;介面;解析繼承,關聯,與實現;Java筆記抽象繼承
- 關於抽象類和介面的初步理解抽象
- java介面和抽象類的簡單理解Java抽象
- 抽象基類和純虛擬函式抽象函式
- Java中抽象類和介面的區別Java抽象
- JAVA基礎之三-介面和抽象類Java抽象
- 介面和抽象理解抽象
- Java —— 流的抽象基類Java抽象
- JAVA物件導向--抽象類Java物件抽象
- C++ 抽象類快速使用C++抽象
- 抽象類及介面詳解抽象
- Xposed攔截抽象方法抽象