Question du test Programmation orientée objet - Les bases

Dans ce code, la classe B étend la classe A. La classe B remplace la méthode talk() de la classe A. L'objet b est une instance de la classe B. L'objet a est une instance de la classe A. L'objet a est affecté à l'objet b. L'objet a appelle la méthode talk(). La méthode talk() de la classe B est appelée.

Intermédiaire

Quel est la sortie du code suivant :

public class A {
    public void talk() {
        echo "Hello my name is A"
    }
}


public class B extends A {
    public void talk() {
        echo "Hello my name is B"
    }
}

B b = new B();
A a = b;
a.talk();

Auteur: SamuelStatut : PubliéeQuestion passée 552 fois
Modifier
1
Évaluations de la communauté
developer avatar
Georget CAMY
22/06/2024
En c++, cette question est problématique : Si la méthode talk() de la classe A est virtuelle alors effectivement, la sortie est bien "Hello my name is B". Cependant, si la méthode talk() n'est pas virtuelle, alors la sortie est "Hello my name is A".
developer avatar
Auteur anonyme
12/01/2023
"B b = new B():" the end of the line is not ":", it must end with ";". Answer is wrong, The output is B.