oop - 为什么我似乎无法掌握界面?

标签 oop interface

有人可以帮我揭开界面的神秘面纱或者给我指出一些好的例子吗?我不断地看到到处弹出的界面,但我还没有真正接触到关于界面或何时使用它们的良好解释。

我在接口(interface)与抽象类的上下文中讨论接口(interface)。

最佳答案

接口(interface)允许您根据“描述”而不是类型进行编程,这允许您更松散地关联软件的元素。

这样想:您想与旁边的立方体中的某人共享数据,因此您拿出闪存棒并复制/粘贴。你走到隔壁,那个人说“那是 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);
}

希望这是有道理的 - 这是一个非常简单的解释,但希望能捕获它的核心。

关于oop - 为什么我似乎无法掌握界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/122883/

相关文章:

php - 为什么在 PHP 中使用 "use"关键字来导入核心标识符?

python - Python getslice项目运算符覆盖功能不起作用

hadoop - 尝试连接到远程Hadoop NameNode Web UI时,Web浏览器超时

通过对象调用Java接口(interface)方法

java - Java 中的基类实例和派生类实例之间的物理内存是如何组织的?

java - 真的是多态吗?

c++ - 访问对象层次结构的子集(不是子树)

c# - 为什么一个类可以在C#中实现自己的私有(private)嵌套接口(interface)?

java - 接口(interface)作为参数

C++:获取与继承和接口(interface)相关的编译错误