Python子类有更多方法

use*_*855 2 python inheritance

我有一个关于如何处理继承问题的快速问题.

假设我们有一个车辆对象

class vehicle(object):

    __init__(registration):
         registration = self.registration

    get_details():
         return "This is a vehicle"
Run Code Online (Sandbox Code Playgroud)

然后是一辆继承了车辆的卡车

class truck(vehicle):

      get_details():
         return "This is a truck"
Run Code Online (Sandbox Code Playgroud)

我们有很多类都有相同的方法和属性,例如公共汽车,汽车,火车.然而,我们还有一架飞机继承了车辆,但只有飞机有一种叫做的新方法 required_takeoff_distance()

是否可以只在飞机类中使用它,或者您是否还应将其添加到车辆类中,默认值为raise NotImplementedError()?

wim*_*wim 6

对于子类来说,定义比父类可用的更多方法是完全可以的.实际上,这是创建儿童班的通常原因.

raise NotImplementedError除非您尝试定义接口/ 抽象基类,否则不要将方法添加到父类.这在Python中几乎不需要,所以如果你不确定它意味着什么,你可以安全地忘记它.