pri*_*ain 6 java abstract-class
我String foo()在抽象类中有一个方法,它已经进行了一些预计算,但无法提供该方法应该返回的最终结果.所以我想要的是,从我的抽象类继承的每个非抽象类必须以foo第一个super()被调用的方式实现,然后计算结果.有没有办法在java中强制执行此操作?
Jon*_*eet 16
是的,通过重新设计使用模板方法模式并包含一个抽象方法:
public abstract class AbstractSuper {
public final String foo() {
// Maybe do something before calling bar...
String initialResult = bar();
// Do something common, e.g. validation
return initialResult;
}
protected abstract String bar();
}
Run Code Online (Sandbox Code Playgroud)
基本上,如果你想迫使子类覆盖方法,它也必须是抽象的-但是,这并不一定是由其他代码调用的方法...
| 归档时间: |
|
| 查看次数: |
3702 次 |
| 最近记录: |