我在接受採訪時詢問了以下問題,我很好奇學習答案。我的基類在我的代碼中每次都會改變。我如何克服這一點?
我有一個由Generator生成的基類'GeneratorBaseClass'。我被問到的問題是關於創建一個新的基類'GeneratorBaseClass2',並讓Generator在運行時進行擴展(無需更改Generator)。因此,隨着代碼
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();
}
}
的例子,我想有發電機拿起在運行時新GeneratorBase,所以改爲
public class GeneratorBase2 {
public GeneratorBase2(){
System.out.println("Generator Base 2 is used");
}
}
發生器的形式是可以改變的,但必須每當基類發生變化時都不會改變。這是關於允許在運行時選擇基類,我不想只改變「擴展....」部分
您是否認真地相信它可以在運行時完成?在運行時更改繼承的需求是一種糟糕的設計! – NINCOMPOOP 2013-05-02 06:39:19
停止改變你的類名然後... – NilsH 2013-05-02 06:40:14
你不能在運行時在java中這樣做。我不是在這裏downvoter。 – 2013-05-02 06:41:03