我在面试中被问到了以下问题,我很想知道答案。
我有一个由 Generator 扩展的基类“GeneratorBaseClass”。我被问到的问题是关于创建一个新的基类“GeneratorBaseClass2”并在运行时更改生成器以扩展它(无需更改生成器)。所以,作为代码的一个例子
public class GeneratorBase1 {
public GeneratorBase1(){
System.out.println("Generator Base 1 is used");
}
}
public class Generator extends GeneratorBase1{
public Generator() {
//will call the appropriate super class
}
public static void main(String[] args){
Generator test=new Generator();
}
}
我想让 Generator 在运行时选择一个新的 GeneratorBase,所以改为
public class GeneratorBase2 {
public GeneratorBase2(){
System.out.println("Generator Base 2 is used");
}
}
Generator的形式可以改变,但不能每次基类改变时都改变。这是关于允许在运行时选择基类,我不想只更改“扩展......”部分