1

所以,我有一个抽象类作为父类,这就是我想要发生的事情。

在抽象类中:

public void run(){
    while(!booleanStatement){
        //do specific stuff here
    }
}

在儿童班:

public class extends parentClass{
public void run(){
    //do child stuff here effected by the while loop above
}

有没有办法做到这一点?超级()也许?

4

3 回答 3

11

当然。只需定义一个额外的抽象方法:

public final void run(){
  while(!booleanStatement){
    doRun();
  }
}

public abstract void doRun();

在这种情况下,子类不能覆盖run()被迫提供一个实现,doRun()该实现在循环内完成工作。

于 2012-10-18T15:21:32.337 回答
1

是的,调用super.run()会执行父类的方法。

因此,您可以通过执行以下操作来扩展它:

public void run() {
    super.run();
    //do child stuff
}
于 2012-10-18T15:20:45.390 回答
1

在抽象类中:

public void run(){
    while(!booleanStatement){
        doStuff();
    }
}

protected abstract void doStuff();

在儿童班:

public class extends parentClass{
protected void doStuff() {
    // do something
}

这样的事情会做。

于 2012-10-18T15:23:30.150 回答