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