0% ont trouvé ce document utile (0 vote)
3 vues2 pages

Chap7 - Java - Exo

Le chapitre traite des classes abstraites et des interfaces en Java, incluant un quiz pour tester les connaissances sur ces concepts. Il propose également des exercices pratiques pour créer des classes abstraites et des interfaces, ainsi que des pièges courants à éviter lors de la programmation. Les questions abordent des sujets tels que l'instanciation des classes abstraites, l'héritage multiple et l'utilisation des méthodes par défaut dans les interfaces.

Transféré par

karel Towanou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues2 pages

Chap7 - Java - Exo

Le chapitre traite des classes abstraites et des interfaces en Java, incluant un quiz pour tester les connaissances sur ces concepts. Il propose également des exercices pratiques pour créer des classes abstraites et des interfaces, ainsi que des pièges courants à éviter lors de la programmation. Les questions abordent des sujets tels que l'instanciation des classes abstraites, l'héritage multiple et l'utilisation des méthodes par défaut dans les interfaces.

Transféré par

karel Towanou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 7 : Classes Abstraites et Interfaces.

I. Quiz (QCM) - Test de connaissances


1. Peut-on créer un objet (instancier) directement à partir d'une classe abstraite ?

 A) Oui, comme pour n'importe quelle classe.


 B) Oui, mais seulement si elle ne contient aucune méthode abstraite.
 C) Non, c'est formellement interdit par le compilateur.
 D) Non, sauf si on utilise le mot-clé super.

2. Quel mot-clé est utilisé pour qu'une classe signe le contrat d'une interface ?

 A) extends
 B) includes
 C) implements
 D) abstracts

3. Qu'est-ce qui caractérise une méthode déclarée comme abstract ?

 A) Elle ne possède pas de corps (pas d'accolades {}) et se termine par un point-
virgule.
 B) Elle ne peut pas prendre de paramètres.
 C) Elle ne peut être appelée que par la classe mère.
 D) Elle doit obligatoirement retourner un type primitif.

4. Quelle affirmation est VRAIE concernant l'héritage multiple en Java ?

 A) Une classe peut faire extends sur plusieurs classes.


 B) Une classe peut faire implements sur plusieurs interfaces.
 C) L'héritage multiple est totalement impossible sous toutes ses formes.
 D) Une interface peut implémenter une classe.

5. Depuis Java 8, que permet le mot-clé default dans une interface ?

 A) De définir un attribut qui ne peut pas être modifié.


 B) De créer une méthode avec du code (un corps) directement dans l'interface.
 C) De rendre l'interface instanciable.
 D) De cacher l'interface aux autres packages.

II. Exercices d'application


Exercice 1 : La Classe Abstraite

1. Créez une classe abstraite Forme contenant un attribut couleur (String) et un


constructeur pour l'initialiser.
2. Ajoutez une méthode abstraite calculerSurface() qui retourne un double.
3. Créez une classe Carre qui hérite de Forme, possédant un attribut cote.
4. Implémentez la méthode calculerSurface() dans Carre.
Exercice 2 : L'Interface

1. Créez une interface Jouable contenant une méthode jouer().


2. Créez deux classes Guitare et Piano qui implémentent l'interface Jouable.
3. Dans chaque classe, codez la méthode jouer() pour qu'elle affiche un message
spécifique (ex: "La guitare fait grrr" / "Le piano fait plink").
4. Dans un main, créez un tableau de type Jouable contenant une Guitare et un Piano,
puis parcourez-le avec une boucle pour faire jouer() tous les instruments.

III. Les Exercices


Piège n°1 : L'oubli fatal Pourquoi le code de cette classe Voiture refuse-t-il de compiler ?

Java
abstract class Vehicule {
public abstract void demarrer();
}

public class Voiture extends Vehicule {


public void klaxonner() {
[Link]("Tut tut !");
}
}

Piège n°2 : Les variables d'interface Que se passe-t-il si j'essaie d'exécuter ce code dans un
main ?

Java
interface Constantes {
int MAX_VITESSE = 120;
}

public class Test implements Constantes {


public void modifierVitesse() {
MAX_VITESSE = 130;
}
}

Piège n°3 : L'instanciation masquée Ce code est-il valide en Java ?

Java
interface Animal {
void manger();
}

public class Main {


public static void main(String[] args) {
Animal a = new Chat(); // En supposant que Chat implements Animal
[Link]();
}
}

Vous aimerez peut-être aussi