>Java >java지도 시간 >Java에서 추상 정적 메서드가 불법인 이유는 무엇입니까?

Java에서 추상 정적 메서드가 불법인 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-16 15:51:14619검색

Why are Abstract Static Methods Illegal in Java?

Java에서 추상 정적 메서드 제외 이해

Java에서 추상 메서드는 일반적으로 구현할 하위 클래스에 대한 계약을 정의합니다. 그러나 "추상"이라는 개념은 "정적" 메서드의 특성과 모순됩니다.

정적 메서드는 특정 객체가 아닌 클래스 자체에 바인딩되며 클래스 인스턴스가 필요 없이 실행됩니다. . 이 고유 기능은 구현 부족을 의미하는 추상 원칙과 충돌합니다.

다음 예를 고려하세요.

abstract class foo {
    abstract void bar( ); // Legal
    abstract static void bar2(); // Illegal
}

이 예에서 bar() 메서드는 추상적이며 이는 다음을 나타냅니다. 하위 클래스에서 구현되어야 합니다. 그러나 bar2() 메서드는 abstract 및 static으로 표시됩니다. 이 조합은 다음과 같은 이유로 허용되지 않습니다.

  • "추상"은 구현이 없음을 의미합니다. 추상 메서드에는 코드가 없으며 해당 기능을 정의하기 위해 하위 클래스가 필요합니다.
  • "정적"은 고유한 기능을 의미합니다. 정적 메서드에는 코드가 있으며 인스턴스화하지 않고도 호출할 수 있습니다. 개체.

추상 메서드는 코드를 가질 수 없으므로 정적 메서드가 내포하는 기능과 모순됩니다. 이러한 논리적 충돌로 인해 Java에서 추상 정적 메소드를 선언할 수 없습니다.

위 내용은 Java에서 추상 정적 메서드가 불법인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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