如果你熟悉面向对象编程,你很可能熟悉子类(Subclassing)和继承(Inheritance)。 然而,继承得到了一个坏名声,这是因为有些开发人员在需要修改程序时将其视为一个全面的解决方案,导致class层次结构可能变得难以管理。
我们还可以使用其他设计模式来使我们的应用程序更易于理解并随时可以进行更改。下面我将向你们展示如何使用继承以及装饰器和复合模式来改进您的程序设计。
继承
继承的理念是“一个对象“是”另一个对象的专用版本”。有一个父类(也称为超类(superclass)),它定义了我们的对象的基本属性。 还有一个子类(子类(subclass))继承父类的属性。
继承的例子是:一只狗和一只贵宾犬,所有的狗都有一些特征,比如四条腿和吠叫的能力。而贵宾犬也具有这种能力所以它是一种狗。SUV是一种车辆。圆是一个形状。如果我们设计一个用于创建形状的程序,下面的图就是我们的class层次结构的样子。
拥有Shape类的好处是我们可以重用我们在其他类中定义的属性和方法。
注意‘getArea’方法在我们的每个子类中都被重新定义了。 我们不必重新定义这个方法,我们可以这样做的,以取代我们父类的方法实现,那是因为每个形状都有自己的计算面积的方法。
覆盖子类中的父方法是多态的一个例子。 多态性是对象具有多种形式的能力