![]() |
1
4
简短回答:您的第四个要点可能最接近OOP接口是什么这一普遍接受的概念: 合同 需要相互交流的各方之间。此类合同规定了(a)一方提供的手段,以及(b)另一方要求的手段。 长篇回答:一般来说,接口是允许两个(可能非常不同)实体相互交互的东西;这使他们能够一起工作,同时又能保持距离。接口是双方达成一致的“共同点”。 (可以像门锁一样简单:锁和任何能工作的钥匙都必须“放在一起”在一个地方;你可以把那个地方称为接口。) 这个通用定义如何适用于您的列表?
GUI允许人类和计算机程序进行交互。它不要求计算机成为完全的人类(用耳朵听、用嘴说话、微笑等),也不要求人类本身成为计算机程序。(排除了过去几十年的UI。:)
(公开可见的)方法及其确切的签名是其他类型能够与该类交互的唯一手段,因此从这个意义上说,它们一起形成了该类的接口。 此外,每个构造函数和方法的一般描述通常是接口的一部分,也是类及其每个方法用途的简短一般描述。当然,类名本身也很重要。
我对Objective-C还不够了解,无法对此发表评论,但许多语言都有一个模块系统,可以将代码库划分为单独的、功能独立的模块。这些通常不必向外界公开它们的所有类型和功能;每个模块可以仔细地声明其他模块可以看到的内容。如上所述,所有被选择公开的都是“接口”,因为它将是与模块中的任何内容交互的唯一方式。“模块中的任何内容”都保持隐藏状态;它被称为“实施”,外人不应该知道它。
这也许最接近OOP中普遍接受的接口概念:它们是 双方签订的合同 想要互动的各方。请参阅此问题开头的简短回答。
基本上,一个Java
理想情况下,接口不应该只说明一个类所提供的内容;它还应该描述一个典型的消费者将需要什么,从而在一个封装良好的系统中保持界面的重点。(我指的是 Single-Responsibility Principle 此处。) |
![]() |
2
1
接口是一个抽象和封装的概念。这基本上是一个你应该遵守或给予的合同,即接口只是双方之间的一个合同,这样他们就知道他们将如何相互作用。接口通常定义如何与类交互,以及它所支持的方法。 接口只包含方法的签名。方法没有任何东西,接口也不能做任何事情。这只是一种模式。
现在,在这个例子中,AbstractMethod()是定义的接口,它只有签名,但没有实现。现在,当类ASubClass实现ineterface时,就会向接口提供实际的实现。 就图形用户界面而言,我认为这不一定是面向对象编程。这个 wiki 说图形用户界面只是一个用户界面,通过它你可以通过图标和其他指示器与电子设备进行交互。
这个 Java doc 已经给出了一个很好的例子:-
一个很好的例子 here :-
您也可以检查 Why Use Interfaces?
|
![]() |
3
0
在OOP中,术语“接口”基本上意味着可以发送到类的对象的所有消息的所有方法签名。因此,在Objective-C中,它将是头文件中的所有方法声明。 术语“图形用户界面”不是在OO上下文中使用“界面”一词。 列表中的第2项是OO接口。 项目#3指的是.h和.m文件。 第4项是指Java语言中的关键字“interface”,并将其等同于objective-C语言中的关键词“protocol”。 |
|
4
-1
一般含义: 接口本质上是与其他东西交互的东西 例如:一个界面可以是一个python应用程序和Skype API(想想都想不到xD) |
|
5
-1
接口是多重继承的一种形式(没有所谓的复杂情况)(这是一个有争议的话题) OO建立在“是”关系的基础上,MI(多重继承)允许一个对象是几个东西。接口定义了一种使它们成为这些东西的方式,而不需要实现。 它们是“你必须做的”_ 成为_ 不管怎样”。 |
![]() |
Devang Sanghani · 柏树检查线通过 2 年前 |
![]() |
Brendan · 如何在Flatter中创建圆形化身周围的虚线边框 2 年前 |
![]() |
Shadow43375 · 当前可见的视口部分是否有官方术语? 6 年前 |
![]() |
HyperQBE · 如何在pyqt MessageBox中使用变量 6 年前 |
![]() |
Lord Jesus · 如何添加“HH:mm:ss”格式的秒表? 6 年前 |