客戶物件:乙個請求其他物件的服務的物件稱為客戶物件。物件a呼叫了物件b的方法,稱a為客戶物件。
定義乙個計算員工薪水的介面,由於有不同的員工,若將計算方法都放在員工類的內部,不利於**的維護。
public inte***ce salarycal
public double getsalary ()
public class categoryb implements salarycal
public double getsalary ()
public class employee
public class main {
public static void main (string args) {
salarycal c = new categorya (10000 , 200) ;
employee e = new employee ("albert" , c);
介面將多個物件都包含的方法抽象出來,這些方法在實現上不相同,但都具有相同的現實意義,例如不同員工薪金的計算方法、不同的動物都會發出不同的叫聲。因此將著這些抽象出來,放在不同的具體類中進行實現。因此,介面的定義中,只有方法的定義,卻不能有具體的實現。介面更能體現的是事物同一行為的不同表現,屬於方法層面。
抽象類針對的是子類對抽象父類的繼承,子類屬於相同的實物範疇,屬性一致,大部分方法也一致。對於某些方法的實現不同,需要將該方法在抽象父類中定義為抽象方法,然後在不同的子類中去實現。抽象類不能進行例項化。
抽象類和介面的使用範疇不同,介面側重的是功能含義,抽象類具備的是繼承。非洲人和亞洲人都屬於對人這個抽象類的繼承,只是所展示出來的膚色不同,即展示膚色的方法不同。但是對於狗和電子狗,他們的屬性不同,但是都具備叫的方法,因此將叫定義為介面,在狗和電子狗兩個類中進行相應的實現。
抽象類不能例項化,抽象類的抽象方法不同在抽象類中定義實現。介面只能定義方法,不能進行實現,
C 設計模式讀書筆記 抽象類跟介面的比較
以下是引用書上的原話,第52頁講到的 建立乙個介面就是建立了乙個或多個方法的定義.在每個實現該介面的類中必須實現這些方法.系統不會生成任何預設的方法 必須自己完成實現過程.介面的優點在於它提供了一種讓乙個類成為兩個類的子類的方式.乙個繼承,乙個是來自介面的實現.如果實現該介面的類漏了乙個介面方法.編...
讀書筆記 抽象類的特點
1.抽象成員必須標記為abstract,並且不能有任何實現。2.抽象成員必須在抽象類中。3.抽象類不能被例項化 4.子類繼承抽象類後,必須把父類中的所有抽象成員都重寫。除非子類也是乙個抽象類,則可以不重寫 5.抽象成員的訪問修飾符不能是private 6.在抽象類中可以包含例項成員。並且抽象類的例項...
設計模式之美筆記 抽象類,介面
設計模式之美 8 設計模式之美 9 目錄 面試中常見的問題 抽象類的特點 介面的特點 抽象類存在的意義 介面存在的意義 抽象類和介面的應用場景的區別?如何用抽象類和普通類來模擬介面?基於介面而非實現程式設計的原因?有必要每個類都定義介面嗎?介面和抽象類的區別是什麼?什麼時候用介面?什麼時候用抽象類?...