Pregunta

He leído el Métodos de anulación y ocultación tutorial. Y de eso, reuní lo siguiente:

Si una subclase define un método de clase con la misma firma que un método de clase en la superclase, el método en la subclase se esconde el de la superclase.

Como tal, hice lo siguiente:

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();
    }
}

Lo que no me gusta de este diseño es que append sigue siendo un visible Método de la subclase. En lugar de lanzar el UnsupportedOperationException, Podría haber dejado el cuerpo vacío. Pero ambos se sienten feos.

Dicho esto, ¿hay un mejor enfoque para ocultar los métodos de la superclase?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top