我遇到了在子類中擴展/改變私有方法的麻煩。例如,我正在創建一個從超類繼承的模擬對象,以便用於測試。Java - 在子類中擴展私有方法
這裏是從父類中的代碼,我想改變的例子:
private void build(int skill) {
// switch screen
state = Constants.STATE_GENERATING;
percentdone = 0;
notifyViewerRedraw() ;
// select generation method
switch(method){
case 1 : mazebuilder = new MazeBuilderPrim(); // generate with Prim's algorithm
break ;
case 0: // generate with Falstad's original algorithm (0 and default), note the missing break statement
default : mazebuilder = new MazeBuilder();
break ;
}
}
我知道私有方法不能在子類中重寫。所以我應該創建一個相同簽名的新方法。我是否也必須重新創建這個類中的所有私有變量?但如果我這樣做,我不確定這是否會改變行爲與父類不同,因爲我知道空間實際上是保留給子類中父類的私有變量。因此,我會有重複的私有變量。我不知道最好的辦法是如何處理這個問題。
我可能會誤解,但在父母你不能讓有問題的方法和變量保護而不是私人? – 2014-09-27 00:57:40