8.9 类的继承
有一个矩形类别Rectangle,很明显它需要两个属性一个长度一个高度。
class Rectangle: def __init__(self,length,height): self.length = length self.height = height
然后有一个正方形类别Square,只需要一个属性,行为和长方形一样:
class Square: def __init__(self,length): self.length = length
这两个类是有联系的。我们知道正方形肯定是矩形,而矩形就不一定是正方形了。我们可以这样说正方形是矩形的一种。如果我们要在代码里面表达这个意思,那么就需要这样修改Square。
class Square(Rectangle): pass
这里我们表达Square继承了Rectangle。 假如A是B的一种,A是在B的基础上派生、进化过来的,那么术语就是A继承B 我们一般称继承的类是子类,被继承的类是父类。
有一个简单的判断法则,那就是“是一种”的关系,子类必定是父类的一种,但父类就不一定是子类的一种,例如白马和马的关系,很明显白马继承马,马是父类,白马是子类,我们可以说白马是马的一种,但不能说马是白马的一种。