상속 정적 메서드는 재정의 할 수 없습니다

이 링크 : https://blog.csdn.net/gao_zhennan/article/details/72892946

그는 매우 명확하게 설명

대답은 분명하다 : 자바 정적 메소드를 오버라이드 (override) 할 수 없습니다.
정적 멤버 (메서드 나 속성)이 클래스의 멤버는, 클래스가 직접 (당신이 그것을 사용할 수 있다고, 객체는 호출 할 수 있습니다, 물론, 정적 멤버의 클래스에 속하는)을 호출 할 수 있습니다 스택에 저장된다, 인스턴스 멤버는 멤버 객체이며, 저장 힙에, 그것은 단지 객체 호출 할 수 있습니다.
생성 된 객체의 종류에 따라 재 기입의 목적은 전시 다형성 속한다. 오브젝트를 생성하지 않고 고정 방법이 사용될 수 있기 때문이다. 어떤 객체는, 그러므로 존재하지 않는이 요소를 필요로 재 작성하고하는 것은 다시 할 수 없다 "개체의 유형에 속한다 없다."

코드와 천 개 단어 :

클래스 {
     공공  정적 쇼 () { 
        시스템. 아웃 (.println " (A)의 고정 방법 " ); 
    } 
} 
클래스 B는 {확장
     공공  정적 쇼 () { 
        시스템. 아웃 .println ( " B 정적 방법 " ); 

    } 
}

그 결과, 그것은 분명하다. 이를 다시 쓰면 정적 B의 방법 및 결과가 애플리케이션 객체와 각각의 연산 결과, 클래스가 관련 있음을 보여 x.show 결과가 될 것이다. 그래서 정적 멤버는 클래스에 속한다.

그래서 어떻게 B의 관계 쇼과의 쇼를 설명하기 위해? 다시 작성하는 대신, 사실, (위의 인증 방법 코드 참조) 과부하되지 않은
사실, 그들의 관계가 될 수 있습니다 : 재정의! 멤버 클래스를 재정의.
예를 들어 :
1 개 서브 클래스 재정의 속성은 슈퍼 클래스에서 얻은

클래스 { 공개  INT X = 5 }
 클래스 {B가 연장 공개 부울 X = ;} 
A A = 새로운 B를 (); B = B의 새로운 B ();

B는 A로부터 상속 X라는 속성을 재정의하기 때문에, X는 막혔다. 그러나 여전히, 그 값 super.x함으로써 얻어 질 수
있어서, 동일한 이름의 서브 클래스 정의 수퍼 개인 또는 정적 메소드
전용 수퍼 쌍. 없음은 서브 클래스를 유도하기 때문에 방법 정의와 같은 이름의 클래스 메소드의 제한은 전제의 서브 클래스가 없습니다. 또한, 정적 메서드는 재정의 할 수 없습니다,하지만 당신은 다시 정의 할 수 있습니다!

 

추천

출처www.cnblogs.com/gxlaqj/p/11420726.html