java编程思想
父类属性可设置成protected,如果设置成private,就只有这个类型的创建者及其内部的函数方法才可访问。
如果子类只改善父类的函数,那么就是纯替换关系,等价关系,大多数时候这种实现已经可以满足要求,但是必要时候也可以在子类中添加新接口,实现类似关系,满足新功能。
doStuff(Shape s)体现了上溯造型upCasting,即父类在上,子类在下展开,这是避免去调查准确类型的好方法。 在这个方法里,调用子类的方法,由子类控制所有的细节。
这也是多态性(Polymorphism)的体现,一个对象,多种形态。由编译器和运行期系统负责对所有细节的控制。
如果我们不想其他任何人创建父类的一个对象来使用它的接口,那么可以设置成抽象类,不允许创建这个类的实例。