【发布时间】:2013-11-11 19:37:22
【问题描述】:
我是 Java 编程新手,但有一些基本的了解。这是我的问题, 我有一个基类,许多类扩展了这个基类。在某些情况下,经过一个标准 由基类方法执行的操作,我只需要对某些子类执行一些操作。 所以我只是按照以下方式完成。只是想根据 OOPS 检查我是否正确
class BaseClass {
public void deleteThisRecord() {
// All standard code goes here
doSomethingAfterDelete(); // call clean up method after sucessful delete
}
public void doSomethingAfterDelete() {
// Nothing is here, let the sub class override this if there is need
}
}
class OneClass extends BaseClass {
// other methods
@Override
public void doSomethingAfterDelete() {
// do some action after delete
}
}
【问题讨论】:
-
如果基类具有默认实现,并且您希望更改某些子类,这将起作用。如果您希望子类被强制拥有它,您可能需要考虑使用抽象类
-
这个问题对codereview.stackexchange.com 来说更重要,但我认为这样做并没有违法。我有时会这样做,因为它比抽象方法更灵活一些。有时我只想一些子类做点什么。
-
你可能应该将
deleteThisRecord()设为final,这样子类就不会在没有调用doSomethingAfterDelete()的情况下再次实现它。
标签: java base-class