IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Faut-il empecher la redéfinition des méthodes définies dans la class abstract ?


Sujet :

Langage Java

  1. #1
    Membre averti
    Avatar de Pierre8r
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 518
    Points : 341
    Points
    341
    Par défaut Faut-il empecher la redéfinition des méthodes définies dans la class abstract ?
    Bonjour,

    Soit une class abstract AbstractClass.
    Soit une class ExtendClass qui implémente la class AbstractClass.

    N'est il pas préférable d'empêcher dans la class ExtendClass, la redéfinition de méthodes définies dans AbstractClass ?
    Si oui comment empêcher cette redéfinition ?

    Merci,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    abstract class AbstractClass {
     
    	private String string;
    	public String string2;
     
    	public void setString(String string) {
    		this.string = string;
    	}
     
    	public String getString() {
    		return string;
    	}
     
    	abstract void setString2(String string2);
     
    	abstract String getString2();
     
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public class ExtendClass extends AbstractClass {
     
    	private String string;
     
    	public void setString(String string) {
    		this.string = string + "aaaaaaaa";
    	}
     
    	public String getString() {
    		return string;
    	}
     
    	@Override
    	String getString2() {
    		return null;
    	}
     
    	@Override
    	void setString2(String string2) {
    	}
     
    }

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par tintin92 Voir le message
    N'est il pas préférable d'empêcher dans la class ExtendClass, la redéfinition de méthodes définies dans AbstractClass ?
    Cela dépend des cas :
    • Soit tu considères que la méthode de la classe abstraite est la référence et qu'elle ne doit pas être surchargée.
    • Soit tu considères que la méthode de la classe abstraire est une implémentation de base, qui peut éventuellement être redéfini dans une classe fille pour obtenir un autre comportement.


    Citation Envoyé par tintin92 Voir le message
    Si oui comment empêcher cette redéfinition ?
    Pour empêcher la redéfinition d'une méthode, il suffit de la déclarer final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	public final String getString() {
    		return string;
    	}
    Toute tentative de redéfinition provoquera une erreur de compilation

    a++

  3. #3
    Membre averti
    Avatar de Pierre8r
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 518
    Points : 341
    Points
    341
    Par défaut
    Merci adiGuba.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/12/2014, 14h18
  2. Réponses: 9
    Dernier message: 30/11/2007, 12h15
  3. Réponses: 2
    Dernier message: 13/04/2007, 14h03
  4. Réponses: 4
    Dernier message: 17/03/2007, 02h06
  5. Réponses: 2
    Dernier message: 05/01/2006, 15h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo