3 回答

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
接口允許您針對(duì)“描述”而不是類型進(jìn)行編程,這允許您更松散地關(guān)聯(lián)軟件的元素。
可以這樣想:你想與你旁邊的立方體中的某人共享數(shù)據(jù),所以你拿出閃存棒并復(fù)制/粘貼。你走到隔壁,那家伙說“那是USB嗎?” 你說是的 - 所有的一切。它與閃光棒的大小無關(guān),也不是制造商 - 重要的是它是USB。
同樣,接口允許您實(shí)現(xiàn)開發(fā)。使用另一個(gè)類比 - 想象你想要?jiǎng)?chuàng)建一個(gè)虛擬繪制汽車的應(yīng)用程序。你可能有這樣的簽名:
public void Paint(Car car, System.Drawing.Color color)...
這可以工作,直到你的客戶說“現(xiàn)在我想畫卡車”,所以你可以這樣做:
public void Paint (Vehicle vehicle, System.Drawing.Color color)...
這會(huì)擴(kuò)大你的應(yīng)用......直到你的客戶說“現(xiàn)在我想畫房子!” 你從一開始就可以做的就是創(chuàng)建一個(gè)界面:
public interface IPaintable{ void Paint(System.Drawing.Color color);}
......并將其傳遞給您的日常工作:
public void Paint(IPaintable item, System.Drawing.Color color){ item.Paint(color);}
希望這是有道理的 - 這是一個(gè)非常簡單的解釋,但希望能夠觸及它的核心。

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
最簡單的答案是接口定義了您的類可以執(zhí)行的操作。這是一份“合同”,表示你的班級(jí)將能夠做到這一點(diǎn)。
Public Interface IRollOver Sub RollOver()End InterfacePublic Class Dog Implements IRollOver Public Sub RollOver() Implements IRollOver.RollOver Console.WriteLine("Rolling Over!") End SubEnd ClassPublic Sub Main() Dim d as New Dog() Dim ro as IRollOver = TryCast(d, IRollOver) If ro isNot Nothing Then ro.RollOver() End IfEnd Sub
基本上,只要它繼續(xù)實(shí)現(xiàn)該接口,您就可以保證Dog類始終具有翻轉(zhuǎn)能力。如果貓能夠獲得RollOver()的能力,他們也可以實(shí)現(xiàn)該界面,并且當(dāng)他們要求RollOver()時(shí)你可以同時(shí)對(duì)待Dogs和Cats。
添加回答
舉報(bào)