Interface 描述接口的用途?
你如何向理解基本OOP设计的学生描述接口的用途?我更喜欢术语“合同”而不是接口,它定义了“合同”任何实现者都必须遵守。首先,我想说,我们有一个团队,编程经理将通知您实现某些特定功能,例如Java或C。Interface 描述接口的用途?,interface,Interface,你如何向理解基本OOP设计的学生描述接口的用途?我更喜欢术语“合同”而不是接口,它定义了“合同”任何实现者都必须遵守。首先,我想说,我们有一个团队,编程经理将通知您实现某些特定功能,例如Java或C。 他们通过实现接口来设计接口和“你”,保证你的类具有相同的功能。然后我会告诉他们接口可能会带来的一些好处,接口就是实现者承诺要做的。 这就像他支持的功能列表一样。引用自 实现接口允许 课堂上要变得更加正式 它承诺提供的行为。 接口在 阶级和外部世界,以及 合同在构建时由 编译器。如果你的班级声称 实
他们通过实现接口来设计接口和“你”,保证你的类具有相同的功能。然后我会告诉他们接口可能会带来的一些好处,接口就是实现者承诺要做的。 这就像他支持的功能列表一样。引用自 实现接口允许 课堂上要变得更加正式 它承诺提供的行为。 接口在 阶级和外部世界,以及 合同在构建时由 编译器。如果你的班级声称 实现一个接口,所有方法 必须显示由该接口定义的 在其源代码类之前 将成功编译
正如前面提到的,契约是一个好词,但它也允许您对同一事物有不同的实现(例如jdbc驱动程序)。另一个好处是使用接口可以提高代码的可测试性,但这可能更难解释 界面中的是合同的一部分。它指定实现类必须提供的成员。但是,它没有具体说明这些成员必须做什么 这就是为什么接口定义总是需要额外的文档(或注释)来解释每个成员必须“做什么”
例如,如果接口包含一个方法Add,其中包含两个整数参数和一个整数结果,则需要提供结果必须是两个参数之和的信息。(这是一个微不足道的例子,但在这一点上,误解可能非常麻烦)。使用peters链接和信息,并为自己找到一些例子。 例子是一个重要的教学工具。 (例如,我们应该用一些工具击败手册页作者) 补充: 有一些非常简单但描述性的例子,比如,
i可比较,i可序列化,正如其他人所说,接口就是契约。实现接口的类承诺提供指定的方法。但在我自己的研究中,我真的很想知道为什么这很重要,为什么不干脆用继承来代替呢 我没有很多OOP的经验,但我已经在下面写下了我的想法。我相信其他更有经验的OOP程序员可以添加更多内容(如果我犯了错误,也可以纠正我) 在不支持多重继承的语言中,其他不相关的类可以通过实现相同的接口来共享功能 我发现从关系的角度来看继承和接口更容易理解它们之间的区别。从基类继承的类与该类具有is-A关系,而实现接口的类与该接口具有实现关系
借用一个例子,汽车是一辆汽车,房子是一座建筑物,但这两个类别都可能实现CanBeBoughtWithABigLoan功能。很久以前,作为n00b,“合同”一词对我来说从来没有真正意义。我考虑了很长时间,仍然无法接受它。它根本没有帮助我理解接口…一点也没有 所以,当我教别人时,我用“特征”来代替 因此,接口描述类型的特征。一个特定类型可以有多组特征。但是,当开发人员决定某个类型必须具有这些特征时,这些特征必须由开发人员具体定义(实现) 然后,为了更进一步,我在定义示例界面时使用了动物之类的东西,而不是典型的真实软件解决方案。这使得学生更容易想象出对界面的需求。有时,我也会以建筑物/房屋为例 有时,根据观众的不同,我也会使用Lowe's或Home Depot的插头和插座来给出示例。IE:桌子上有几个插头。它们都有不同的特点。但有两个观察结果:
我希望这会有所帮助。当类X从另一个类Y继承时,有两种效果: