서브 클래스에서 개인 메소드를 확장/변경하는 문제가 있습니다. 예를 들어, 테스트에 사용하기 위해 수퍼 클래스에서 상속받은 mock 객체를 생성합니다. 여기 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 ;
}
}
나는 개인 방법은 서브 클래스에서 덮어 쓸 수 없습니다 것을 알고있다. 그래서 저는 같은 서명의 새로운 방법을 만들어야합니다. 이 클래스의 모든 사설 변수도 다시 만들어야합니까? 하지만 그렇게하면, 그 공간이 서브 클래스의 부모 클래스의 private 변수를 위해 실제로 예약되어 있다는 것을 알기 때문에 그것이 부모 클래스와 다른 행동을 변경하는지 확실하지 않습니다. 따라서 개인 변수가 중복됩니다. 나는 최선의 방법이 이것에 접근하는 것이 무엇인지 모른다.
오해의 소지가 있지만 부모님이 문제의 메소드와 변수를 비공개가 아닌 보호 할 수 없습니까? –