Atelier 1.2 exercie 4: interface et classe abstraite #
Objectifs #
-
Je crée la classe
MonAtelier1_2_Dqui hérite de la classeAtelier1_2_D -
Je crée moi-même les interfaces
RouleuretFormateur -
Je recopie les classes suivantes de l’
atelier1_2_C:VehiculeAutoCamionMobiletteMoto
-
J’ajoute les bonnes méthodes dans les interfaces
-
Je transforme la classe
Vehiculeen 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
commitet 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_Det j’ajouteextends Atelier1_2_D -
J’utilise Ctrl+.Eclipse: Ctrl+1 pour ajouter le
importdeAtelier1_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,MotoetVehicule- 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 lesimportdeRouleuretFormateur
É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:consommationLitresParKilometrenomVehiculesiNomFeminin
-
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_Det 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: