介面和抽象類的使用

2022-10-06 08:51:09 字數 826 閱讀 2241

介面必須有子類,子類依靠implements關鍵字可以同時實現多個介面。

介面的子類(如果不是抽象類)必須實現介面中的全部抽象方法,才能實現例項化物件。

利用子類實現物件的例項化,介面可以實現多型性。

介面類除了資料成員(賦初值且值不可更改,關鍵字final可以省略),還有抽象方法(關鍵字abstract可以省略)和 default方法。

抽象類和抽象方法都必須用abstract關鍵字來修飾

抽象類必須有子類,子類使用extends繼承抽象類,乙個子類只能夠繼承乙個抽象類

抽象類不能直接例項化,也就是不能直接用new關鍵字去產生物件

在抽象類中,定義時抽象方法只需宣告,而無需實現(沒有方法體)

含有抽象方法的類必須被宣告為抽象類,抽象類的子類必須實現所有的抽象方法後,才能不叫抽象類,從而可以被例項化,否則這個子類還是抽象類

抽象類不能夠使用final定義,因為使用final定義的類不能有子類,而抽象類使用的時候必須有子類,所以容易出現矛盾現象。

如果要想例項化抽象類的物件,則可以通過子類進行物件的向上轉型來完成。

和普通類相同,抽象類可以擁有構造方法,但是這些構造方法必須在子類中被呼叫,並且子類例項化物件的時候依然滿足被繼承的關係,先預設呼叫父類的構造方法,而後再呼叫子類的構造方法,畢竟抽象類之宗還是存在屬性的,但抽象類的構造方法無法被外部類例項化物件呼叫。

在普通類之中所有的方法都是由方法體的,如果說有一些方法希望由子類實現的時候,子類即使不實現,也不會出現錯誤。而如果重寫改寫了父類的同名方法,就是構成了「重寫」。

如果使用抽象類的話,那麼抽象類中的所有抽象方法在語法規則上就必須要求子類全部實現,這樣就可以強制子類做一些固定操作。

抽象方法 抽象類 介面 介面和抽象類的區別

某個父類只知道子類因該包含什麼樣的方法,無法知道這些子類如何實現這些方法。抽象類包含該方法但沒有對該方法的具體實現。有抽象方法的類只能被定義為抽象類,抽象類裡可以沒有抽象方法。抽象方法和抽象類的規則 public abstract class shape private string color p...

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...

抽象類和介面

抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...