Supposons que vous travaillez sur un projet de gestion d’une entreprise de transport qui possède des camions et des avions. Les camions et les avions ont des propriétés communes (par exemple, le numéro d’identification et la capacité de charge), mais ils ont également des propriétés spécifiques à leur type (par exemple, la taille du réservoir de carburant pour les avions et le type de carburant pour les camions).
Créez une classe abstraite appelée « Transport » qui contient les propriétés communes à tous les moyens de transport, telles que le numéro d’identification et la capacité de charge. Cette classe doit avoir des méthodes abstraites pour les propriétés spécifiques à chaque type de transport (par exemple, la taille du réservoir de carburant pour les avions et le type de carburant pour les camions).
Créez deux sous-classes de la classe Transport : « Camion » et « Avion ». Chacune de ces classes doit avoir les propriétés spécifiques à son type (par exemple, la taille du réservoir de carburant pour les avions et le type de carburant pour les camions).
Créez une classe « Transporteur » qui contient une ArrayList d’objets Transport. Cette classe doit avoir des méthodes pour ajouter des objets Transport à la liste, pour afficher tous les objets Transport de la liste en utilisant la méthode toString et pour cloner l’objet Transporteur en créant une nouvelle instance de la classe Transporteur avec une copie de la liste d’objets Transport. La méthode clone doit être implémentée dans la classe Transport en utilisant la méthode super.clone().