Rappels TD2

Stay DRY : Don't repeat yourself

Composition

&

Héritage

public class Humain {
        
    private String name;
    
    public Humain(String pName) {
        name = pName;
    }

    public String commentTappellesTu() {
        return "Je m'appelle "+name+ " and I'm only human after all";
    }
}


Humain humain = new Humain("Mickey");

System.out.println(humain.commentTappellesTu());

--> Je m'appelle Mickey and I'm only human after all 

public class SuperHero extends Humain {
        
    private String pouvoir;
    
    public SuperHero(String pName, String pouvoir) {
        super(pName);
        this.pouvoir = pouvoir;
    }

    public String getPouvoir() {
        return "Mon pouvoir magique est : "+pouvoir;
    }
}

Humain humain = new SuperHero("Peter Parker", "araignée");

System.out.println(humain.commentTappellesTu());

--> Je m'appelle Peter Parker and I'm only human after all 
public class Batman extends SuperHero {
        
    private String pouvoir;
    
    public Batman(String pName, String pouvoir) {
        super(pName, pouvoir);
    }

    public String commentTappellesTu() {
        return "Je m'appelle Batman";
    }
}

Humain humain = new SuperHero("Bruce Wayne", "la richesse");

System.out.println(humain.commentTappellesTu());

--> Je m'appelle Batman
public class Batman extends SuperHero {
        
    private String pouvoir;
    
    public Batman(String pName, String pouvoir) {
        super(pName, pouvoir);
    }

    public String commentTappellesTu() {
        return "Je m'appelle Batman";
    }

    public boolean equals(Object obj){
        return obj instanceof Batman;
    }
}

Humain humain = new Batman("Bruce Wayne", "la richesse");

Batman batman = new Batman("Bruce Wayne", "bocou d'argent");

System.out.println(humain.equals(batman));

--> true

public String recupererPouvoir(Humain humain){

    String result = null;
    if(humain instanceof SuperHero){
        result = ((SuperHero) humain).getPouvoir();
    }
    return result;
}

private       -> class

                    -> package

protected  -> package + héritage

public         -> tout le monde

And now ....

ABSTRACTION

INSA - 2ième année TD3

By Mickael Lecoq

INSA - 2ième année TD3

  • 1,212