> Java > java지도 시간 > 정적 메소드는 실제로 Java에서 상속됩니까?

정적 메소드는 실제로 Java에서 상속됩니까?

DDD
풀어 주다: 2024-12-22 06:44:11
원래의
934명이 탐색했습니다.

Are Static Methods Truly Inherited in Java?

Java의 정적 메서드 상속

Java에서는 정적 메서드가 상속되지 않는다는 주장에도 불구하고 코드는 그 반대를 보여줍니다. 이러한 모순은 다음과 같은 질문을 제기합니다. 정적 메서드는 실제로 상속됩니까?

이 명백한 역설을 이해하려면 Java의 멤버 상속 개념을 다시 살펴보는 것이 중요합니다. 책에 따르면 슈퍼클래스의 액세스 가능한 멤버("super"를 사용하지 않음)는 상속된 것으로 간주됩니다.

그러나 Sun Java Tutorials는 더 넓은 관점을 제공합니다.

  • 하위 클래스는 모든 항목을 상속합니다. 패키지와 관계없이 상위 클래스의 공개 및 보호 멤버
  • 하위 클래스가 동일한 패키지에서는 package-private 멤버도 상속합니다.

이를 기반으로 정적 메서드는 본질적으로 공개이므로 상속됩니다. 간단한 이름으로 액세스할 수 있으며 특정 인스턴스에 바인딩되지 않습니다.

상속된 정적 메서드의 유일한 특징은 동일한 시그니처를 가진 새로운 정적 메서드가 하위 클래스에 도입될 때의 동작입니다. 이 경우 기존 정적 메서드는 재정의되지 않고 숨겨집니다. 이 동작은 하위 클래스에 특정한 정적 구현이 영향을 받지 않도록 보장합니다.

따라서 이 책의 멤버 상속에 대한 설명은 인스턴스 메서드와 정적 메서드 모두에 적용됩니다. 단, 정적 메서드는 항상 표시되고 상속됩니다. 슈퍼클래스에서 접근 가능 또한 숨겨진 정적 메서드에 액세스하는 방법은 호출이 슈퍼클래스에서 발생하는지 아니면 서브클래스에서 발생하는지에 따라 달라집니다.

위 내용은 정적 메소드는 실제로 Java에서 상속됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿