Oop 从基类重写已实现的方法
重写已经在基类中实现的基类方法是一种好的做法吗Oop 从基类重写已实现的方法,oop,overriding,Oop,Overriding,重写已经在基类中实现的基类方法是一种好的做法吗 如果没有,是否可以在派生类中添加新方法?是。如果您正在进行子类化,以便创建一个对调用方透明的实现超类型方法的新类型,那么您可以并且应该重写基类中的方法,以便在子类的上下文中正确地实现它们 只要确保使用基类实例的调用方可以以相同的方式处理子类实例,即子类实现与超类中方法的含义一致 在不知道更多的情况下,还不清楚这是否符合你的要求,但我想我会尝试一下你提出的问题。因此,我将忽略待澄清的第二个问题,因为第一个问题的答案是肯定的。是的,这肯定是一种良好的做
如果没有,是否可以在派生类中添加新方法?是。如果您正在进行子类化,以便创建一个对调用方透明的实现超类型方法的新类型,那么您可以并且应该重写基类中的方法,以便在子类的上下文中正确地实现它们 只要确保使用基类实例的调用方可以以相同的方式处理子类实例,即子类实现与超类中方法的含义一致
在不知道更多的情况下,还不清楚这是否符合你的要求,但我想我会尝试一下你提出的问题。因此,我将忽略待澄清的第二个问题,因为第一个问题的答案是肯定的。是的,这肯定是一种良好的做法,而且经常是必要的。例如,您通常希望增强基类方法的行为,例如:
// overriding method foo()
void foo() {
// do something unique to the base class:
println("called from child class!");
// call parent class's implementation:
super.foo();
}
@我想问的是,重写一个已经实现的方法不会修改基类行为吗?这取决于你所说的修改是什么意思。派生类的实例当然会做一些与基类的实例不同的事情。如果您不希望这样做,那么首先就不会创建子类。属于超类型但不是子类型成员的实例的行为将一如既往。重写基类中已实现的方法不会修改基类行为吗?@user793468 No;基类对其子类一无所知。