Atelier 1.2 exercie 4: interface et classe abstraite #
Objectifs #
-
Je crée la classe
MonAtelier1_2_D
qui hérite de la classeAtelier1_2_D
-
Je crée moi-même les interfaces
Rouleur
etFormateur
-
Je recopie les classes suivantes de l'
atelier1_2_C
:Vehicule
Auto
Camion
Mobilette
Moto
-
J’ajoute les bonnes méthodes dans les interfaces
-
Je transforme la classe
Vehicule
en classe abstraite -
Je transforme les méthodes “vides” en méthodes abstraites
-
Je corrige les erreurs de compilation
-
J’ajoute une méthode
main
à la classeMonAtelier1_2_D
:public static void main(String[] args) { new MonAtelier1_2_D().valider(); }
-
J’implante les méthodes pour remplir le contrat du
Atelier1_2_D
, p.ex:@Override public Object fournirMoto() { return new Moto(); } @Override public Object fournirMobilette() { return new Mobilette(); } @Override public Object fournirAuto() { return new Auto(); } @Override public Object fournirCamion() { return new Camion(); }
-
J’exécute mon projet et je valide mes classes et mes interfaces
-
J’ajoute les fichiers du projet dans Git
-
Je fais un
commit
et unpush
Réalisation #
Étape 01: créer la classe MonAtelier1_2_D
#
- Je crée une nouvelle classe nommée
MonAtelier1_2_D
- Clique-droit sur le projet => New => Class
- Name:
MonAtelier1_2_D
- Name:
- Clique-droit sur le projet => New => Class
Étape 02: hériter de Atelier1_2_D #
-
J’ouvre
MonAtelier1_2_D
et j’ajouteextends Atelier1_2_D
-
J’utilise Ctrl+.Eclipse: Ctrl+1 pour ajouter le
import
deAtelier1_2_D
-
J’utilise Ctrl+.Eclipse: Ctrl+1 pour générer les méthodes manquantes
- option
add unimplemented methods
- option
Étape 03: créer les interfaces #
-
Je crée une nouvelle interface nommée
Rouleur
- Clique-droit sur le projet => New => Interface
- Name:
Rouleur
- Name:
- Clique-droit sur le projet => New => Interface
-
Je crée une nouvelle interface nommée
Formateur
- Clique-droit sur le projet => New => Interface
- Name:
Formateur
- Name:
- Clique-droit sur le projet => New => Interface
Étape 04: copier les classes à partir de atelier1_2_C
#
- Pour les classes
Auto
,Camion
,Mobilette
,Moto
etVehicule
- je fais un copier-coller:
- à partir de la classe située dans le paquet
atelier1_2_C
- vers le paquet
atelier1_2_D
- à partir de la classe située dans le paquet
- je fais un copier-coller:
Étape 05: réparer les import
#
- Dans
Vehicule
, j’efface lesimport
deRouleur
etFormateur
Étape 06: remplir les interfaces #
- Dans
Rouleur
, j’ajoute la méthoderouler
:
public interface Rouleur {
void rouler(double kilometres);
}
- Dans
Formateur
, j’ajoute la méthodeformter
:
public interface Formateur {
String formater();
}
Étape 07: transformer Vehicule
en classe abstraite
#
- Dans
Vehicule
, j’ajoute le mot cléabstract
:
public abstract class Vehicule implements Rouleur, Formateur {
Étape 08: transformer les méthodes “vides” en méthodes abstraites #
-
Dans
Vehicule
, je considère les méthodes:consommationLitresParKilometre
nomVehicule
siNomFeminin
-
Pour chaque, méthode ci-haut:
- j’ajoute le mot clé
abstract
- j’efface le corps de la méthode (le code)
- j’ajoute le mot clé
-
Voici le résultat:
protected abstract double consommationLitresParKilometre();
protected abstract String nomVehicule();
protected abstract boolean siNomFeminin();
Étape 09: ajouter la méthode main
#
- J’ouvre
MonAtelier1_2_D
et j’ajoute la méthodemain
public class MonAtelier1_2_D extends Atelier1_2_D {
public static void main(String[] args) {
new MonAtelier1_2_D().valider();
}
Étape 10: exécuter pour valider #
-
J’exécute mon programme
-
Je vérifie que la validation est réussie: