이와 같은 메서드 이름은 하위 클래스의 메서드가 실제로는 상위 클래스의 액세스할 수 없는 메서드를 숨긴 것이지만, 재정의처럼 보일 수 있어 혼동될 수 있습니다. 또한 추후 상위 클래스의 메서드 가시성이 변경될 경우 하위 클래스의 의미가 확인 없이 변경되거나 컴파일 오류가 발생할 수 있습니다.
빠른 수정은 메서드 이름을 변경하도록 제안합니다.
예:
public class Super {
private void test() {
}
}
public class Sub extends Super {
void test() { // 'Super.test()'를 public으로 설정하면 컴파일 오류가 발생합니다
// 'Super.test()'를 package-private으로 설정하면 'Sub.test()'는 재정의가 됩니다
}
}