我想知道是否有辦法在不破壞封裝的情況下做到這一點,我希望抽象類依賴實現子類中定義的參數。像這樣:抽象類從實現子類中獲取參數?
public abstract class Parent {
private int size;
private List<String> someList;
public Parent() {
size = getSize();
someList = new ArrayList<String>(size);
}
public abstract int getSize();
}
public class Child extends Parent {
@Override
public int getSize() {
return 5;
}
}
這難看嗎?有沒有更好的辦法?或許更重要的是,這是一個好主意嗎?
編輯:
類在一個框架的背景下創建的,所以默認參數的構造函數始終是一個叫(事實上,父類擴展了另一個類)。 size參數僅用於說明目的,我不打算將它用於List實現。
嗨AlexR,謝謝你的回答,但有一些這種方法的影響,我沒有提到足夠快,我已經編輯他們到我的問題。抱歉。 –