Exercices POO ABC avec méthodes concretes et abstraites
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

ABC avec méthodes concretes et abstraites

Une classe abstraite peut aussi avoir des méthodes concretes (non abstraites). Ces méthodes sont heritees par les sous-classes sans avoir besoin de les reimplémenter. Seules les méthodes marquees @abstractmethod doivent etre implementees.

C'est tres utile pour factoriser du code commun. Par exemple, une classe Forme abstraite pourrait avoir une méthode concrete description() qui utilise la méthode abstraite aire() :

class Forme(ABC):
@abstractmethod
def aire(self):
pass
def description(self):
return f'Forme avec aire = {self.aire()}'

Écris une classe abstraite Vehicule avec :
un __init__ qui prend marque et vitesse_max
une méthode abstraite type_vehicule() qui renvoie le type
une méthode concrete fiche() qui renvoie 'MARQUE - TYPE (MAX km/h)'

Puis ecris Voiture (type 'Voiture') et Moto (type 'Moto').

Exemple :
v = Voiture('Renault', 180)
v.fiche() renvoie 'Renault - Voiture (180 km/h)'

Tests (3/4)

Fiche voiture
assert Voiture('Renault', 180).fiche() == 'Renault - Voiture (180 km/h)'
Fiche moto
assert Moto('Yamaha', 200).fiche() == 'Yamaha - Moto (200 km/h)'
Type vehicule
assert Voiture('X', 0).type_vehicule() == 'Voiture'

+ 0 tests cachés

Indices (3 disponibles)

solution.py