覆盖已经在基类中实现的基类方法是一个好习惯吗?
如果没有,可以在派生类中添加新方法吗?
答案 0 :(得分:0)
是。如果你是子类化以创建一个新类型 - 透明地对调用者 - 实现超类型的方法,那么你可以而且应该覆盖基类中的方法,以便在子类的上下文中正确实现它们
确保使用基类实例的调用者能够以相同的方式处理子类实例 - 您的子类实现与超类中方法的含义一致。
不知道更多,目前尚不清楚这是否符合您的要求,但我想我会对您提出的问题采取行动。因此,我将忽略第二个问题,等待澄清,因为第一个问题的答案是“是”。
答案 1 :(得分:0)
是的,这绝对是一种很好的做法,而且往往是必要的。例如,您经常希望扩充基类方法的行为:
// overriding method foo()
void foo() {
// do something unique to the base class:
println("called from child class!");
// call parent class's implementation:
super.foo();
}