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は完全な答えを持っている)のために:あなた**はいけません**スーパークラスのオーバーライドメソッドその契約を履行することなく。ところで、引用した文は_class_メソッドに関するもので、ここでは_instance_メソッドをオーバーライドします。 – kleopatra
@kleopatra、私はこの質問がそれ以上注目を集めないと感じたので、私は答えをマークしました。私はまだこの質問が十分に答えられたとは思わない。多分あなたは自分のものを提供することができますか?あなたは知識があるようです! :D – mrkhrts
私はそれが古いの質問を知っているが、私はちょうどこれを見つけた... 私は通常、これを行うためにあなたの方法を使用して、私もやっていることは、クラスを拡張することができないように最終的にメソッドをオーバーライドすることです特定の機能を追加できるようにする。 –