从基类重写实现的方法

时间:2014-05-11 01:59:39

标签: oop method-overriding

覆盖已经在基类中实现的基类方法是一个好习惯吗?

如果没有,可以在派生类中添加新方法吗?

2 个答案:

答案 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();
}