抽象類的特性:
抽象類不允許被例項化,只能被繼承。
抽象類可以包含屬性和方法,方法可以包含diamante實現,也可以不包含**實現,不包 含**實現的方法叫做抽象方法。
子類繼承抽象類,必須實現抽象類中的所有抽象方法。
介面的特性:
介面不包含屬性(也就是成員變數)。
介面只能宣告方法,方法不能包含**實現。
類實現介面的時候,必須實現介面中宣告的所有方法。
抽象類實際上就是類,只不過是一種特殊的類,這種類不能被例項化為物件,只能被子類繼承。我們知道繼承是一種 is-a 的關係,那抽象類既然屬於類,也表示一種is-a的關係。相對於抽行類的is-a關係來說,介面表示一種has-a關係,表示具有某些功能。對於介面有乙個更加形象的叫法,那就是協議(contact)。
繼承能解決**復用的問題,所以,抽象類也是為**復用而生的。多個子類可以繼承抽類中定義的屬性和方法,避免在子列中,重複編寫相同的**。
在**設計、程式設計開發的時候,什麼時候該用抽象類?什麼時候該用介面?
實際上,判斷的標準很簡單。如果我們要表示一種is-a的關係,並且是為了解決**復用的問題,我們就用抽象類;如果我們要表示一種has-a關係,並且是為了解決抽象二位**復用的問題,那麼我們可以使用介面。
從類的繼承層次上來看,抽象類是一種自下而上的設計思路,先有子類的**復用,然後在抽象成上層的父類(也就是抽象類)。而介面正好相反,它是一種自上而下的設計思路。我們在程式設計的時候,一般都是先設計解耦,再去考慮具體的實現。
抽象類和介面存在的意義:
抽象類是對成員變數和方法的抽象,是一種is-a關係,是為了解決**復用問題。介面僅僅是對方法的抽象,是一種has-a的關係,表示具有某一組行為特性,是為了解決解耦問題,隔離介面和具體的實現,提高**的擴充套件性。
介面和抽象類
介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...
抽象類和介面
抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...
抽象類和介面
1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...