我有一个由其他类实现的抽象方法:
protected abstract void uninstallApp();
我想要做的是强制所有必须实现此方法的类使用System.out.println()
和另一种方法:Log.report()
有什么方法可以实现这个目标吗?
答案 0 :(得分:1)
例如,您可以在最终方法中在父抽象类中执行日志记录(因此子项不会覆盖它)。此类调用子类应覆盖的第二个方法。如下所示:
protected final void uninstallApp(){
doUninstallApp();
Log.report();
}
protected abstract void doUninstallApp();
答案 1 :(得分:0)
我同意@Loic,我们可以在这里找到Command模式......我试着写下面的代码..可能它可以帮助..
class Parent {
public final void uninstallApp() {
print();
doSomethingUsefull();
logReport();
}
//To be overriden as per requirement
protected void logReport() {
Log.report();
}
//To be overriden as per requirement
protected void print() {
System.out.println();
}
//To be overriden as per requirement
protected void doSomethingUsefull() {
//Implementation goes here
}
}
class Child extends Parent {
public void logReport() {
//Implementation goes here
}
public void print() {
//Implementation goes here
}
public void doSomethingUsefull() {
//Implementation goes here
}
}
class Main {
public static void main(String[] args) {
Parent p = new Child();
p.uninstallApp();
}
}