Question

J'ai lu le Méthodes de remplacement et de cachette Didacticiel. Et à partir de cela, j'ai rassemblé ce qui suit:

Si une sous-classe définit une méthode de classe avec la même signature qu'une méthode de classe dans la superclasse, la méthode de la sous-classe peaux Celui de la superclasse.

En tant que tel, j'ai fait ce qui suit:

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

Ce que je n'aime pas dans ce design, c'est que append est toujours un visible Méthode de la sous-classe. Au lieu de jeter le UnsupportedOperationException, J'aurais pu laisser le corps vide. Mais les deux se sentent moches.

Cela étant dit, y a-t-il une meilleure approche pour cacher les méthodes de la superclasse?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top