상속 체인에서 상위 및 상위 메소드에 액세스하기위한 적절한 규칙은 무엇입니까? 예를 들어, methodA()
은 기본 조상 클래스에 있고 methodB()
은 상위 클래스에 있습니다. 부모를 확장하는 하위/하위 클래스 (상위 클래스/기본 클래스를 확장 한 하위 클래스)에있는 경우 methodA()
에 액세스하는 적절한 방법은 무엇입니까?조상 및 부모 메소드에 액세스하기위한 올바른 (Java) 규칙?
분명히 super.super.methodA()
은 허용되지 않습니다.
무엇이 작동합니까? super.methodA()
, this.methodA()
이며 단순히 methodA()
을 소유하고 있습니다.
는 조상 클래스에있는 methodA()
것을 호출하는 '올바른'방법은 위의 삼가지 경우입니다
methodA()
만약
나는 정말로 얻고 싶었던 것이 다양한 형태의 메소드 호출에서 애매한 것이라고 생각한다. 외부 프로그래머 (특히 API/문서가없는 경우)는 methodA()가 상주하는 위치를 어떻게 알 수 있습니까? super.xxx는 부모 호출을 의미합니다. this.xxx는 거주자 호출을 암시하므로 간단히 xxxx() – Brownbay
@Chrys : 모호성이 없습니다. 메소드 호출은 가장 특정한 유형의 메소드로 해석됩니다. 의미있는 API 또는 문서를 제공하지 않으면 코드 사용자는 라이브러리 작성자와 동일한 방식으로 코드를 찾아야합니다. 메서드가 정의 된 가장 가까운 클래스를 찾기 위해 상속 계층 구조를 탐색합니다. in. –