abstract 關鍵字允許人們在類中建立乙個或者多個沒有任何定義的方法----提供了介面部分,但是沒有提供任何相應的具體實現,這些實現是由此類的繼承者建立的。也就是說abstract類只是對外提供乙個介面,這個介面通常在基類中建立,用於通過多型去搞事情(也就是向上轉型)。因為匯出類有而基類沒有的方法,基類是沒法訪問匯出類中的這個方法的。
乙個類只能繼承乙個類,向上轉型的時候只能轉成乙個基類。因此我們就出現了介面,乙個類可以是實現多個介面。當我們把乙個類和就扣組合在一起的時候,這個類必須放在前面,後面跟著的才是介面(否則編譯器會報錯)。一定要記住使用介面的核心原因,一為了能夠向上轉型為多個基型別(以及由此而帶來的靈活性)。然而使用介面的第二個原因確實與使用抽象基類相同:防止客戶端程式員建立該類的物件,並確保這僅僅是建立乙個介面。
那麼就帶來乙個問題,我們應該使用介面還是抽象類呢?
如果要建立不帶任何方法定義和成員變數的基類,那麼就應該選擇介面而不是抽象類。事實上,如果知道某事物應該成為乙個基類,那麼第一選擇應該是使它成為乙個介面。
介面擴充套件的時候可以使用多繼承(僅適用於介面的繼承)。一般情況下,只可以將extends用於單一的類,但是可以引用多個基類介面。就像底下的例子,只需要用逗號將介面名一一分割開就行。
inte***ce m
inte***ce z
inte***ce y
inte***ce g extends m,z,y
class i implements g ;
public void b(){};
public void c(){};
public void d(){};
介面,抽象類,抽象方法
一.抽象方法 1.用abstract修飾 2.沒有方法體 二.抽象類 1.含有抽象方法的類叫抽象類 抽象類無法建立物件,只有被繼承並且覆蓋重寫後 去掉抽象 才能使用 三.介面 1.抽象方法 2.常量,常量必須是final的,比如電源中引數不能夠改變 3.預設 方法公升級用 4.靜態方法和私有方法 介...
抽象思維之共性 抽象類的作用 介面的作用
今天梁方明老師,給我們主要講解了抽象思維的重要性 抽象類的作用 介面的作用 抽象類和介面的作用。下面我講對今天所學的知識做個回顧,有不對的和不足的地方,還請大家指出。首先先從乙個例子入手,冒泡法排序的實現過程是 第一種實現過程 public void bublesort int array 這個氣泡...
抽象方法與介面
抽象類不能例項化,而且必須被子類繼承,子類需要實現所有的方法。介面是乙個特殊的類,由抽象方法和全域性常量組成 public static final 介面卡設計模式 inte ce window public void close public void icon public void unico...