Polymorphisme et interface Flashcards

1
Q

Qu’est-ce qu’une classe abstraite ?

A

C’est une classe qui peut inclure ou non des méthodes abstraites.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vrai ou faux : Une classe abstraite peut-être instanciée ?

A

Faux, cependant elle peut être sous-classée.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Définit le concept de polymorphisme

A

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…)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qu’est-ce qu’une méthode abstraite ?

A

C’est une méthode qui n’a pas de code, seulement une signature et un type de retour.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Une classe enfant d’une classe abstraite a deux possibilités :

A

1.Implémenter toutes les méthodes abstraites définies par la superclasse.
2.Être elle-même abstraite.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vrai ou faux ? On peut avoir une classe abstraite qui hérite d’une classe abstraite.

A

Vrai, dans ce cas, pas obligé les méthodes abstraites de la super classe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

À quoi sert le mot-clé final ?

A

Interdiction de sous-classer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Pourquoi déclarer une classe final ?

A

Bloquer une branche de la hiérarchie, bloquer un héritage insensé, bloqué un héritage non-planifié.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Donne les principes de l’encapsulation

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quel impact négatif l’héritage peut-il avoir sur l’encapsulation ?

A

Il peut la briser

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explique le problème du diamant

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

L’héritage multiple est-il une bonne idée ?

A

Certains langages comme C++ le permettent, mais c’est vu comme une mauvaise pratique. Préférez la composition.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Donne moi un exemple de composition

A

Public class ComputerWeird{
private Compteurx2 competurx2;
private Compteurx3 compteurx3;
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vrai ou faux ? un design qui peut sembler suggérer l’héritage multiple, souvent n’en a pas de besoin.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

À quoi sert les interfaces ?

A

À régler certains problèmes sans héritages multiples et de forcer des objets à implémenter des méthodes sans héritage.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Donne la définition global d’interface

A

Une interface est une description des méthodes qu’un objet doit implémenter pour la réaliser.

17
Q

Quelle est la différence entre l’hiérarchie et l’interface ?

A

Hiérarchie => familles d’objets
Interface => ensemble de méthode à implémenter

18
Q

Vrai ou faux ? Une interface a du code ?

A

Faux, une interface n’a pas de code, uniquement des définitions de méthodes à implémenter

19
Q

Vrai ou faux, on peut faire des hiérarchies d’interface ?

A

Vrai

20
Q

Le polymorphisme en Java est implémenté de quels façons ?

A

De plusieurs façons :
Héritage : redéfinition des méthodes (override)
Surchage : redéfinition des méthodes avec signatures (Overload)
Programmation générique : paramétrisation des types