>Java >java지도 시간 >정적 메서드 상속은 Java의 인스턴스 메서드 상속과 어떻게 다릅니까?

정적 메서드 상속은 Java의 인스턴스 메서드 상속과 어떻게 다릅니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-20 02:12:09497검색

How Does Static Method Inheritance Differ from Instance Method Inheritance in Java?

Java의 정적 메서드 상속

Java에서는 "Java™ SCJP 인증에 대한 프로그래머 가이드"에 설명된 상속 규칙이 적용됩니다. 예를 들어 방법. 액세스 가능한 인스턴스 메서드는 하위 클래스에 상속됩니다. 그러나 책의 설명은 상속 시 정적 메서드의 고유한 동작을 고려하지 않습니다.

정적 메서드는 이름에서 알 수 있듯이 인스턴스가 아닌 클래스에 속합니다. 어떤 하위 클래스가 액세스하는지에 관계없이 클래스 이름을 통해 액세스할 수 있습니다. 이러한 특성은 인스턴스 메소드에 대한 표준 상속 규칙에서 벗어나게 합니다.

하위 클래스가 상위 클래스에서 정적 메소드를 상속할 때 해당 메소드를 대체하거나 재정의하지 않습니다. 대신 원래 정적 메서드는 하위 클래스 내에서 계속 액세스할 수 있습니다. 이는 재정의가 발생할 수 있는 인스턴스 메서드와 대조됩니다. 이러한 차이점이 나타나는 이유는 정적 메서드가 개별 인스턴스가 아닌 클래스 전체와 연결되어 있기 때문입니다.

제공된 예제 코드에서 클래스 B는 해당 슈퍼클래스 A의 display() 정적 메서드에 액세스할 수 있습니다. , 간단한 이름 display() 또는 정규화된 이름 B.display()를 사용합니다. 정적 메소드는 상속되고 클래스 B의 자체 메소드 세트의 일부가 되므로 두 접근 방식 모두 유효합니다.

Sun Java Tutorials에서는 하위 클래스가 클래스 B의 모든 공개 및 보호 멤버를 상속한다고 명시적으로 언급되어 있습니다. 정적(클래스) 메서드를 포함한 부모. 상속된 정적 메서드와 비정적 메서드의 차이점은 동일한 시그니처를 가진 새 메서드가 서브클래스에 정의될 때의 동작에 있습니다. 비정적 메서드는 재정의될 수 있지만 정적 메서드는 숨겨집니다. 즉, 하위 클래스 내에서 호출할 때는 하위 클래스의 새 정적 메서드가 우선적으로 적용되지만, 슈퍼클래스에서 호출할 때는 원래 정적 메서드에 계속 액세스할 수 있습니다.

위 내용은 정적 메서드 상속은 Java의 인스턴스 메서드 상속과 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.