Java 在扩展中将非抽象方法重写为抽象方法 class
Java override non abstract method as abstract in extended class
所以我在基础 class 中有一个非抽象方法 onStop。
在扩展的 MyTask 中将其抽象化是否可以接受?目的是强制由扩展 MyTask 的 classes 实现 onStop。
public abstract class Task {
public void onStop() {
}
}
实施:
public abstract class MyTask extends Task {
//..
// Is this acceptable?
public abstract void onStop();
}
如果 MyTask
也是 abstract
,则允许这样做。它强制 MyTask
的所有具体 sub-classes 提供它们自己的 onStop()
实现,而不是使用基础 Task
class 的 onStop()
实现.
所以我在基础 class 中有一个非抽象方法 onStop。 在扩展的 MyTask 中将其抽象化是否可以接受?目的是强制由扩展 MyTask 的 classes 实现 onStop。
public abstract class Task {
public void onStop() {
}
}
实施:
public abstract class MyTask extends Task {
//..
// Is this acceptable?
public abstract void onStop();
}
如果 MyTask
也是 abstract
,则允许这样做。它强制 MyTask
的所有具体 sub-classes 提供它们自己的 onStop()
实现,而不是使用基础 Task
class 的 onStop()
实现.