728x90
반응형
질문 : Java가 정적 메서드 재정의를 허용하지 않는 이유는 무엇입니까?
정적 메서드를 재정의 할 수없는 이유는 무엇입니까?
가능하면 예를 사용하십시오.
답변
재정의는 클래스의 인스턴스가 있는지에 따라 다릅니다. 다형성의 요점은 클래스를 서브 클래 싱 할 수 있고 이러한 서브 클래스를 구현하는 객체는 수퍼 클래스에 정의 된 (하위 클래스에서 재정의 됨) 동일한 메서드에 대해 다른 동작을 갖게된다는 것입니다. 정적 메서드는 클래스의 인스턴스와 연결되어 있지 않으므로 개념을 적용 할 수 없습니다.
이에 영향을 미치는 Java의 설계를 추진하는 두 가지 고려 사항이 있습니다. 하나는 성능에 대한 우려였습니다. 스몰 토크가 너무 느리다는 비판이 많았고 (가비지 수집과 다형성 호출이 그 일부가 됨) Java 제작자는이를 피하기로 결정했습니다. 또 하나는 Java의 타겟 고객이 C ++ 개발자라는 결정이었습니다. 정적 메서드를 작동하는 방식으로 만들면 C ++ 프로그래머에게 친숙한 이점이 있었고 호출 할 메서드를 파악하기 위해 런타임까지 기다릴 필요가 없기 때문에 매우 빠릅니다.
출처 : https://stackoverflow.com/questions/2223386/why-doesnt-java-allow-overriding-of-static-methods
728x90
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JavaScript에서 클립 보드에 복사하는 방법 (0) | 2021.10.14 |
---|---|
자바에서 확인 된 예외와 확인되지 않은 예외 이해 (0) | 2021.10.14 |
Java는 "참조에 의한 전달" 일까? "값에 의한 전달" 일까? (0) | 2021.10.13 |
Java에서 명령 줄 인수를 구문 분석하는 방법 (0) | 2021.10.06 |
Java에서 public, protected, package-private, private의 차이점 (0) | 2021.10.05 |