Licence d'informatique |
Programmation objet et Java
|
(a) elles ne compilent pas toutes;
(b) elles compilent toutes mais ne donnent pas le même résultat;
(c) elles compilent et donnent le même résultat.
Base a = new Beta();
a.essai(a);
(a) ne compile pas
(b) compile mais lève une exception
(c) affiche alpha
(d) affiche beta.
Alpha a = new Beta();(a) ne compile pas
essai(a);
(b) compile mais lève une exception
(c) exécute la méthode essai(Alpha)
(d) exécute la méthode essai(Beta).
(a) surcharge la méthode de la classe Alpha
(b) rédéfinit la méthode de la classe Alpha
Alpha a = new Beta();(a) affiche alpha
a.essai(a);
(b) affiche beta.
(a) vrai,
(b) faux.
(a) vrai,
(b) faux.
(a) cette instruction est illégale.
(b) le constructeur à deux arguments de Beta est appelé;
(c) le constructeur à deux arguments de Alpha est appelé;
(d) l'instruction doit être la première du constructeur.
class Exemple {
public char car;
public Exemple(char lettre) {
car = lettre;
}
public void set(char lettre) {
lettre = 'A';
}
public static void main(String[] args) {
Exemple ex = new Exemple('B');
ex.set(ex.car);
System.out.println(ex.car);
}
}
(a) A
(b) B
(c) ne compile pas.
class DException extends Exception {
DException() {
System.out.println("DException"); //1
}
DException(String message, int i) {
super(message);
System.out.println("DException " + message + " " + i); //2
}
}
(a) Ne compile pas parce que le deuxième constructeur ne transmet pas les deux arguments à la superclasse
(b) Ne compile pas parce que la classe Exception n'a pas de constructeur à deux paramètres.
(c) On peut lever une par throw new DException("numéro", 4);
(d) Quand on lève une DException, seul l'un des messages 1 ou 2 est affiché.
(e) Quand on lève une DException, les deux messages sont affichés.