我可以强制所有继承类的子继承特定方法吗?

时间:2012-10-18 15:19:28

标签: java inheritance

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

在抽象类中:

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
}

有没有办法让这种情况发生? super()也许?

3 个答案:

答案 0 :(得分:11)

不确定。只需定义一个额外的抽象方法:

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

public abstract void doRun();

在这种情况下,子类不能覆盖run()并且强制doRun()提供实现循环内部工作的实现。

答案 1 :(得分:1)

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

所以你可以通过做类似的事来扩展它:

public void run() {
    super.run();
    //do child stuff
}

答案 2 :(得分:1)

在抽象类中:

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

protected abstract void doStuff();

在儿童班:

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

这样的事情会发生。