Overriding and Hiding Methods 자습서를 읽었습니다.수퍼 클래스 숨기기 방법
서브 클래스는 슈퍼 클래스의 클래스 메소드와 같은 서명 클래스 메소드를 정의하는 경우 슈퍼 클래스에서, 서브 클래스 가죽의 방법 일 : 그리고 그에서, 나는 다음과 같은 모였다. 나는이 디자인에 대해 좋아하지 않는 무엇
import javax.swing.JTextArea; public final class JWrappedLabel extends JTextArea{ private static final long serialVersionUID = -844167470113830283L; public JWrappedLabel(final String text){ super(text); setOpaque(false); setEditable(false); setLineWrap(true); setWrapStyleWord(true); } @Override public void append(final String s){ throw new UnsupportedOperationException(); } }
이
append
여전히 서브 클래스의 볼 수 방법이다 :
는, 나는 다음과 같은했다. UnsupportedOperationException
을 던지는 대신 몸을 비울 수있었습니다. 그러나 둘 다 추한 느낌.
그렇다면 수퍼 클래스의 메서드를 숨기는 더 좋은 방법이 있습니까?
만 강조 (@Simone이 완전한 답이있다)의 경우 : ** 금지 사항 ** 슈퍼 클래스의 재정의 방법 계약을 이행하지 않고. BTW, 당신이 여기에 _instance_ 메서드를 재정의하는 동안 인용 한 문장은 _class_ 메서드에 관한 것입니다. – kleopatra
@kleopatra, 나는이 질문이 더 이상주의를 끌지 않을 것이라고 느꼈기 때문에 내가 한 대답을 표시했다. 나는 아직도이 질문에 충분히 대답했다고 생각하지 않는다. 당신은 당신 자신의 것을 제공 할 수 있습니까? 당신은 지식이있는 것 같습니다! : D – mrkhrts
나는 그것이 오래된 것을 알고 있지만 나는 단지 이것을 발견했다. 나는 보통 이것을하기 위해 너의 방법을 사용하는데, 나는 또한 그 방법을 final로 오버라이드하여 클래스를 확장 할 수 없다. 특정 기능을 추가로 사용 가능하게하십시오. –