为什么我似乎无法掌握接口?

为什么我似乎无法掌握接口?

有人可以为我揭开界面的神秘面纱,还是给我一些好的例子?我一直在这里和那里看到界面弹出,但我还没有真正接触到界面的良好解释或何时使用它们。

我在谈论接口与抽象类的上下文中的接口。


白猪掌柜的
浏览 376回答 3
3回答

LEATH

接口允许您针对“描述”而不是类型进行编程,这允许您更松散地关联软件的元素。可以这样想:你想与你旁边的立方体中的某人共享数据,所以你拿出闪存棒并复制/粘贴。你走到隔壁,那家伙说“那是USB吗?” 你说是的 - 所有的一切。它与闪光棒的大小无关,也不是制造商 - 重要的是它是USB。同样,接口允许您实现开发。使用另一个类比 - 想象你想要创建一个虚拟绘制汽车的应用程序。你可能有这样的签名:public void Paint(Car car, System.Drawing.Color color)...这可以工作,直到你的客户说“现在我想画卡车”,所以你可以这样做:public void Paint (Vehicle vehicle, System.Drawing.Color color)...这会扩大你的应用......直到你的客户说“现在我想画房子!” 你从一开始就可以做的就是创建一个界面:public interface IPaintable{    void Paint(System.Drawing.Color color);}......并将其传递给您的日常工作:public void Paint(IPaintable item, System.Drawing.Color color){    item.Paint(color);}希望这是有道理的 - 这是一个非常简单的解释,但希望能够触及它的核心。

ABOUTYOU

最简单的答案是接口定义了您的类可以执行的操作。这是一份“合同”,表示你的班级将能够做到这一点。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基本上,只要它继续实现该接口,您就可以保证Dog类始终具有翻转能力。如果猫能够获得RollOver()的能力,他们也可以实现该界面,并且当他们要求RollOver()时你可以同时对待Dogs和Cats。
打开App,查看更多内容
随时随地看视频慕课网APP