3 回答

TA貢獻1802條經驗 獲得超4個贊
public abstract class Mammal
飼料 配偶
public class Dog : Mammalpublic class Cat : Mammal
public class Giraffe : Mammalpublic class Rhinoceros : Mammalpublic class Hippopotamus : Mammal
Feed()
Mate()
public interface IPettable{ IList<Trick> Tricks{get; set;} void Bathe(); void Train(Trick t);}
public class Dog : Mammal, IPettablepublic class Cat : Mammal, IPettable

TA貢獻1785條經驗 獲得超8個贊
比抽象類更喜歡接口
現有的類可以很容易地進行修改,以實現新的接口。
..您所要做的就是添加所需的方法(如果它們還不存在),并向類聲明中添加一個Implements子句。 接口是定義混合器的理想方法。
..松散地說,Mixin是一個類除了它的“主類型”之外還可以實現的類型,以聲明它提供了一些可選的行為。例如,可比較是一個混合接口,它允許類聲明其實例是相對于其他相互比較的對象排序的。 接口允許構造無層次的類型框架。
..類型層次結構對于組織某些事情是很好的,但是其他的事情并不能整齊地歸入一個僵化的層次結構中。 接口支持安全、強大的功能增強。
通過每班包裝成語。如果您使用抽象類來定義類型,那么您將使希望添加功能的程序員別無選擇,只能使用繼承。
此外,您可以結合接口和抽象類的優點,提供一個抽象的框架實現類來與您導出的每個重要接口一起使用。

TA貢獻1772條經驗 獲得超6個贊
添加回答
舉報