Java将非抽象方法覆盖为扩展类中的抽象

问题描述

所以我在基类中有一个非抽象的onStop方法。 在扩展的MyTask中将其抽象化是否可以接受?目的是强制通过扩展MyTask的类来实现onStop。

public abstract class Task {

    public void onStop() {
    
    }
}

实施:

public abstract class MyTask extends Task {
    //..

    // Is this acceptable?
    public abstract void onStop();
}

解决方法

如果MyTask也是abstract,则可以这样做。它将强制MyTask的所有具体子类提供其自己的onStop()实现,而不是使用基onStop()类的Task实现。