英文:
Java override non abstract method as abstract in extended class
问题
是的,可以将在扩展的MyTask类中的onStop方法改为抽象方法,以强制要求扩展MyTask的类来实现onStop方法。以下是代码的翻译:
public abstract class Task {
public void onStop() {
}
}
实现:
public abstract class MyTask extends Task {
//..
// 这是可以接受的吗?
public abstract void onStop();
}
英文:
So I have a non-abstract method onStop inside the base class.
Is it acceptable to make it abstract in the extented MyTask? The aim is to force the onStop to be implemented by classes that extend the MyTask.
public abstract class Task {
public void onStop() {
}
}
Implementation:
public abstract class MyTask extends Task {
//..
// Is this acceptable?
public abstract void onStop();
}
答案1
得分: 3
以下是翻译好的部分:
如果 MyTask
也是 abstract
,那么允许这样做。这会强制 MyTask
的所有具体子类提供自己的 onStop()
实现,而不是使用基础 Task
类的 onStop()
实现。
英文:
It's allowed to do that if MyTask
is also abstract
. It forces all the concrete sub-classes of MyTask
to supply their own implementation of onStop()
instead of using the onStop()
implementation of the base Task
class.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论