[Java] Appeler un constructeur dans le corps d'une méthode

Résolu/Fermé
divad92 Messages postés 25 Date d'inscription mardi 27 novembre 2012 Statut Membre Dernière intervention 24 janvier 2013 - Modifié par divad92 le 8/01/2013 à 23:02
divad92 Messages postés 25 Date d'inscription mardi 27 novembre 2012 Statut Membre Dernière intervention 24 janvier 2013 - 9 janv. 2013 à 09:12
Bonjour,


Pourrait-on me donner un exemple illustrant ce paragraphe

Ajouter un comportement à une méthode de la superclasse
La redéfinition d'une méthode consiste à réécrire totalement la méthode initiale. Il est parfois utile de simplement ajouter un comportement au comportement original, pour cela l'utilisation du mot-clé super s'avère nécessaire. En appelant le constructeur de la superclasse dans le corps de la méthode qui la redéfinit, et en ajoutant de nouvelles instructions, la méthode originale est dotée de comportements supplémentaires.


J'ai trouvé ça ici :
https://www.commentcamarche.net/contents/556-java-l-heritage


Merci ;)
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
8 janv. 2013 à 23:24
Exemple bidon avec l'utilisation de super dans un constructeur et dans une méthode :

public class PointXY
{
    protected double x,y;
    
    public PointXY(double x, double y)
    {
    	this.x=x;
    	this.y=y;
    }
    
    public void afficher()
    {
        System.out.println("x = "+x);
        System.out.println("y = "+y);
    }
}

public class PointXYZ extends PointXY
{
    protected double z;

    public PointXYZ(double x, double y,double z)
    {
    	super(x,y);
    	this.z=z;
    }
    
    public void afficher()
    {
        super.afficher();
        System.out.println("z = "+z);
    }
}

public class Test
{
    public static void main(String[] args)
    {
        PointXY xy = new PointXY(1,2);
        xy.afficher();
		
        PointXYZ xyz = new PointXYZ(3,4,5);		
        xyz.afficher();
    }
}
-1
divad92 Messages postés 25 Date d'inscription mardi 27 novembre 2012 Statut Membre Dernière intervention 24 janvier 2013
Modifié par divad92 le 9/01/2013 à 00:45
Merci... Je ne savais pas qu'on pouvais faire ça.. Donc, du coup, la méthode afficher de PointXYZ est en fait celle de PointXY, mais à laquelle on ajoute la ligne affichant z..
OK :)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
9 janv. 2013 à 01:03
Il faut également noter le super dans le constructeur qui permet d'initialiser le PointXYZ comme étant un PointXY avant d'initialiser z (qui est la spécificité héritée).

Evidemment ici c'est un exemple très simple, presque inutile, mais qui permet de voir ce que permet de faire l'héritage. Ici on ne s'est intéressé qu'à "compléter" une méthode, mais dans la majorité des cas, un certain nombre de méthodes sont totalement inchangées d"une classe mère vers sa classe fille, dans ce cas là il n'y a même pas besoin d'y retoucher, et les méthodes se propagent (c'est le cas par exemple de toutes les méthodes de Object)
0
divad92 Messages postés 25 Date d'inscription mardi 27 novembre 2012 Statut Membre Dernière intervention 24 janvier 2013
9 janv. 2013 à 09:12
ok. Merci ;)
0