정적 메서드를 재정의 할 수없는 모든 곳에서 작성되지만 액세스 지정자를 public에서 protected로 축소하려고하면 오류가 발생합니다. 예를 들어자바에서 정적 메서드 오버라이드의 이상한 경우
public class StaticOverrideFunda {
public static void foo(){
System.out.println("Parent Foo");
}
}
public class B extends StaticOverrideFunda{
protected static void foo(){
System.out.println("Child Foo");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
B.foo();
}
}
이
가 는가상속 방법 따라서
의 가시성을 줄일 수 없습니다 그것은 최우선 규칙을 따르고 insense, 어떻게 우리가 말하는 올 foo를 오버라이드 (override)되지 않는 말한다 B 급? 왜 우리가 숨기거나 음영하고 덮어 쓰지 않는다고 말합니까?
"우선하는 규칙을 따르고 있습니다": false. 그것은 "상속 된 메소드의 가시성을 줄일 수 없습니다"절을 깨고 있습니다. 당신의 질문은 정확히 무엇입니까? – Viruzzo