继承 - 你应该使用基础 类,还是它们只是子 类 的框架?
Inheritance - are you supposed to use base classes, or are they just a framework for child classes?
抱歉,如果之前有人问过这个问题。我还没有找到明确的答案。
我有两辆class,摩托车和汽车。唯一的区别是轮子的数量和允许的乘客数量。
在这种情况下,我会使用摩托车作为基地 class(并以汽车作为子class),还是创建一个新的 'vehicle' 基地 class ?
通常,继承用于为“isA”关系建模。
一辆汽车的零件与两辆摩托车相似,但汽车不是摩托车。
但是,汽车和摩托车都是交通工具。
所以如果是我,我会使用车辆 class 作为基础 class,并从中派生出汽车和摩托车。
这实际上取决于您如何定义摩托车和汽车。如果你关心的只是'it has an engine, and can transport people'。那么汽车可能是从摩托车派生出来的 class。
但对我来说这是一个非常愚蠢的概念 - 汽车和摩托车是两种截然不同的事物,它们具有一些相似的属性,例如发动机类型。但是摩托车就没有'number of doors'的概念了,只有汽车
当两个事物具有相似的属性但根本不同时,您应该选择它们都继承自的基础class(或接口)。
抱歉,如果之前有人问过这个问题。我还没有找到明确的答案。
我有两辆class,摩托车和汽车。唯一的区别是轮子的数量和允许的乘客数量。
在这种情况下,我会使用摩托车作为基地 class(并以汽车作为子class),还是创建一个新的 'vehicle' 基地 class ?
通常,继承用于为“isA”关系建模。
一辆汽车的零件与两辆摩托车相似,但汽车不是摩托车。
但是,汽车和摩托车都是交通工具。
所以如果是我,我会使用车辆 class 作为基础 class,并从中派生出汽车和摩托车。
这实际上取决于您如何定义摩托车和汽车。如果你关心的只是'it has an engine, and can transport people'。那么汽车可能是从摩托车派生出来的 class。
但对我来说这是一个非常愚蠢的概念 - 汽车和摩托车是两种截然不同的事物,它们具有一些相似的属性,例如发动机类型。但是摩托车就没有'number of doors'的概念了,只有汽车
当两个事物具有相似的属性但根本不同时,您应该选择它们都继承自的基础class(或接口)。