Vous êtes sur la page 1sur 1

Session Hiver 2023

Introduction Programmation Objet


L’héritage
Exercice1
Soient les trois classes A, B et C définis comme :

public class A {
public void affiche() {
System.out.println("A::affiche");
}
}

public class B extends A { }

public class C extends B {


public void affiche() {
System.out.println("C::affiche");
}
}

On utilise ces trois classes dans le programme suivant :

public class Test {

public static void main(String args[]){


A a = new C(); // ligne1
a.affiche(); // ligne2
B b = new B();
a=b;
a.affiche(); // ligne5
A a1 = new A();
a=a1;
a.affiche(); // ligne8
B b1 = new B();
b1.affiche(); // ligne10

/* B b = new A(); */ // ligne12


}
}

Répondez aux questions suivantes :

1. Quels sont les constructeurs qui sont appelés dans la ligne1 ? Préciser l'ordre.

2. Quels sont les affichages produits par : la ligne2, la ligne5, la ligne8 et la ligne 10 ?

3. La ligne12 est commentée car elle contient des erreurs. Indiquer lesquelles

Page 1 sur 1

Vous aimerez peut-être aussi