Vic*_*tor 8 java oop inheritance
这个问题在求职面试,Java开发,学生职位期间被问到.
interface SomeInterface {
public void execute();
}
class A implements SomeInterface {
public void execute() {...}
}
Run Code Online (Sandbox Code Playgroud)
问题是:
新开发人员被要求创建一个扩展类A的类,并创建名为的方法Execute,这个方法会做一些事情.我们应该如何重写上面的代码,以便在Execute调用方法时有一个输出"启动过程" (当然不应该在B类中完成打印).
class B extends A {
public void execute() {
//some code goes here
}
}
Run Code Online (Sandbox Code Playgroud)
我知道它可以用两个函数完成,其中一个是抽象的.请指教...
Boh*_*ian 10
这是模板模式的一个示例.抽象超类A通过执行"标准"部分(在这种情况下打印某些内容)将结构强加到处理中,然后调用子类的具体实现来执行实际/特定处理:
abstract class A implements someIterface {
public void Execute() {
System.out.println("start process"):
doExecute();
}
protected abstract void doExecute();
}
class B extends A {
protected void doExecute() {
// some code goes here
}
}
Run Code Online (Sandbox Code Playgroud)
对于以下情况更常见:
execute而不是ExecuteSomeInterface而不是someInterfaceexecute