代码之家  ›  专栏  ›  技术社区  ›  Tali

继承-您应该使用基类,还是它们只是子类的框架?

  •  0
  • Tali  · 技术社区  · 2 年前

    抱歉,如果之前有人问过这个问题。我还没有找到明确的答案。

    我有两个班,摩托车和汽车。唯一的区别是车轮数量和允许的乘客数量。

    在这种情况下,我会使用motorbike作为基类(并将car作为子类),还是创建一个新的“vehicle”基类?

    2 回复  |  直到 2 年前
        1
  •  2
  •   Nobody Nobody    2 年前

    通常,继承用于建模“isA”关系。

    一辆汽车的零件与两辆摩托车相似,但一辆汽车 摩托车。

    然而,汽车和摩托车都是车辆。

    因此,如果是我,我将使用vehicle类作为基类,并从中派生car和motorbike。

        2
  •  0
  •   Jonesopolis    2 年前

    这实际上取决于你如何定义摩托车和汽车。如果你所关心的只是“它有一个引擎,可以运送人”。然后,汽车可以是摩托车的派生类。

    但对我来说,这是一个相当愚蠢的概念——汽车和摩托车是两个截然不同的东西,它们有一些相似的特性,比如发动机类型。但是摩托车没有“门的数量”的概念,那只是汽车的门。

    当两个事物共享相似的属性,但本质上不同时,您应该选择它们都继承自的基类(或接口)。