Java 8부터 인터페이스는 이제 정적 메서드를 지원합니다. 또한 구체적인 인스턴스 메서드는 가질 수 있지만 인스턴스 필드는 있을 수 없습니다.
이전 Java 버전에서는 다음과 같은 이유로 인터페이스에 정적 메서드가 포함될 수 없었습니다.
정적 메서드는 다음에서 해결되므로 재정의할 수 없습니다. 컴파일 시간. 동적 디스패치는 컴파일러가 객체의 구체적인 유형을 결정할 수 없어 호출할 메서드를 확인할 수 없는 경우 인스턴스 메서드에 사용됩니다. 그러나 정적 메서드에는 알려진 클래스가 필요하므로 정적으로 해결될 수 있으므로 동적 디스패치가 필요하지 않습니다.
즉, 슈퍼클래스와 하위 클래스 모두 동일한 서명을 가진 정적 메서드가 있는 경우 하위 클래스의 메서드는 항상 먼저 호출되어 슈퍼클래스의 메서드를 재정의합니다. 그러나 이는 원하는 버전의 정적 메서드가 포함된 클래스를 항상 지정할 수 있기 때문에 개념적으로 중복됩니다.
IXML화 가능, 다음 사항을 고려하십시오.
위 내용은 Java 8 이전에는 Java 인터페이스에 정적 메서드가 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!