3 回答

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

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
添加回答
舉報(bào)