對抽象類和介面的一點認識

2021-09-07 12:03:56 字數 521 閱讀 7783

假設乙個非抽象子類繼承乙個抽象父類,它必須實現父類中的抽象方法,假設子類也是抽象類,那麼則不必實現父類中的抽象方法。

假設乙個類實現了乙個介面。那麼必須實現介面中的全部方法。可是子類是抽象類則不用。

比方說乙個介面,你僅僅用到當中的一兩個方法,但是假設直接實現介面須要實現裡面的五個方法。這時候你能夠先讓抽象類實現介面,然後你的類繼承介面。就不須要都實現介面的方法了。

並且介面的抽象層次要更高。是一種契約,抽象類是提供了非常多的方法。給你用,沒有強制性。

介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的。而抽象類是能夠有私有方法或私有變數的。

另外,實現介面的一定要實現介面裡定義的全部方法。而實現抽象類能夠有選擇地重寫須要用到的方法,一般的應用裡,最頂級的是介面。然後是抽象類實現介面,最後才到詳細類實現,繼承抽象類,能夠實現多型。

還有,介面能夠實現多重繼承,而乙個類僅僅能繼承乙個超類,但能夠通過繼承多個介面實現多重繼承,介面還有標識(裡面沒有不論什麼方法,如remote介面)和資料共享(裡面的變數全是常量)的作用。

對介面的一點認識

以前雖然老師一直反覆強調介面的重要,並且要求我們寫任何程式之前都嘗試先寫介面,但是由於自己淺顯的認識,一直覺得寫介面就是多此一舉,自己先寫好介面,寫好方法,在繼承去實現方法,這不是多此一舉嗎?直接在類裡寫完所有方法不就完了嗎?但隨著學習的繼續,越來學懂得介面的重要性,並且也嘗試寫介面,這裡,想先寫一...

對抽象類和介面的理解

abstract class inte ce 1.定義方式 abstract class demo abstract void method1 abstract void method2 可以有抽象和非抽象的方法 inte ce demo 不可以有具體的方法 2.使用上 所以根據他們的特性,abst...

對抽象類和介面的理解

二者不同 抽象類 1.抽象類中可以定義構造器 2.可以有抽象方法和具體方法 3.介面中的成員全都是 public 的 4.抽象類中可以定義成員變數 5.有抽象方法的類必須被宣告為抽象類,而抽象類未必要有抽象方法 6.抽象類中可以包含靜態方法 7.乙個類只能繼承乙個抽象類 介面 1.介面中不能定義構造...