Polymorphisme et interface Flashcards
Qu’est-ce qu’une classe abstraite ?
C’est une classe qui peut inclure ou non des méthodes abstraites.
Vrai ou faux : Une classe abstraite peut-être instanciée ?
Faux, cependant elle peut être sous-classée.
Définit le concept de polymorphisme
Propriété d’un langage de programmation pour traiter des objets différemment selon leur type (par exemple, un véhicule peut être un auto, une bicyclette, un bateau…)
Qu’est-ce qu’une méthode abstraite ?
C’est une méthode qui n’a pas de code, seulement une signature et un type de retour.
Une classe enfant d’une classe abstraite a deux possibilités :
1.Implémenter toutes les méthodes abstraites définies par la superclasse.
2.Être elle-même abstraite.
Vrai ou faux ? On peut avoir une classe abstraite qui hérite d’une classe abstraite.
Vrai, dans ce cas, pas obligé les méthodes abstraites de la super classe.
À quoi sert le mot-clé final ?
Interdiction de sous-classer.
Pourquoi déclarer une classe final ?
Bloquer une branche de la hiérarchie, bloquer un héritage insensé, bloqué un héritage non-planifié.
Donne les principes de l’encapsulation
1.On ne veut pas connaître son implantation pour l’utiliser.
2.Les détails d’implantation à l’interne doivent pouvoir changer sans affecter son interface publique.
Quel impact négatif l’héritage peut-il avoir sur l’encapsulation ?
Il peut la briser
Explique le problème du diamant
Le problème du diamant (parfois appelé diamant mortel de la mort) est une ambiguïté qui survient lorsque deux classes B et C héritent de A et que la classe D hérite à la fois de B et de C.
L’héritage multiple est-il une bonne idée ?
Certains langages comme C++ le permettent, mais c’est vu comme une mauvaise pratique. Préférez la composition.
Donne moi un exemple de composition
Public class ComputerWeird{
private Compteurx2 competurx2;
private Compteurx3 compteurx3;
}
Vrai ou faux ? un design qui peut sembler suggérer l’héritage multiple, souvent n’en a pas de besoin.
Vrai.
Par exemple, une voiture n’hérite pas d’un moteur et de roues… une voiture est COMPOSÉE de moteur et de roues
À quoi sert les interfaces ?
À régler certains problèmes sans héritages multiples et de forcer des objets à implémenter des méthodes sans héritage.