oop - 继承和接口(interface)

标签 oop inheritance interface ooad

这是此 question 的后续问题.

假设我有一个继承树如下:

Car -> Ford -> Mustang -> MustangGT

为这些类中的每个 定义接口(interface)是否有好处?示例:

ICar -> IFord -> IMustang -> IMustangGT

我可以看到也许其他类(如 Chevy)想要实现 IcarIFord 甚至可能是 IMustang,但可能不是 IMustangGT,因为它非常具体。在这种情况下接口(interface)是否多余?

此外,我认为任何想要实现 IFord 的类都肯定希望通过从 Ford 继承来使用其单一继承,以免重复代码。如果这是给定的,那么同时实现 IFord 有什么好处?

最佳答案

根据我的经验,当您有多个类时,最好使用接口(interface),每个类都需要响应相同的一个或多个方法,以便它们可以被针对这些类的公共(public)接口(interface)编写的其他代码互换使用。接口(interface)的最佳用途是当协议(protocol)很重要但每个类的底层逻辑可能不同时。如果您以其他方式复制逻辑,请考虑使用抽象类或标准类继承。

针对您问题的第一部分,我建议不要为您的每个类创建接口(interface)。这会不必要地扰乱您的类结构。如果您发现需要一个接口(interface),您可以随时添加它。希望这对您有所帮助!

亚当

关于oop - 继承和接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/268698/

相关文章:

javascript - ES6 中是否有等效于 Python 风格的类属性?

java - 面向对象编程私有(private)类字段+获取/设置或公共(public)类字段?

Javascript 扩充基本类型(原型(prototype)继承)

c++ - 抽象容器类和子类可以迭代吗?

go - 是否有必要实现 Scanner 接口(interface)和 Valuer 接口(interface)

php - 在 Controller 中覆盖 Yii2 assetManager 配置

python - Python 中的类/OO 是一种好方法吗?

oop - 我应该使用继承吗?

css - IE anchor 选择器继承

c# - WCF 服务客户端