import [Link].
ArrayList;
import [Link];
// Classe abstraite (Abstraction)
abstract class Animal {
protected String nom;
protected int age;
public Animal(String nom, int age) {
[Link] = nom;
[Link] = age;
}
// Méthode abstraite
public abstract void parler();
// Exemple de méthode non abstraite
public void manger() {
[Link](nom + " est en train de manger.");
}
// Getters et Setters (Encapsulation)
public String getNom() {
return nom;
}
public void setNom(String nom) {
[Link] = nom;
}
public int getAge() {
return age;
}
public void setAge(int age) {
[Link] = age;
}
}
// Classe qui hérite d'Animal (Héritage)
class Lion extends Animal {
public Lion(String nom, int age) {
super(nom, age);
}
@Override
public void parler() {
[Link](nom + " rugit : Roaar !");
}
}
// Classe qui hérite d'Animal
class Perroquet extends Animal {
public Perroquet(String nom, int age) {
super(nom, age);
}
@Override
public void parler() {
[Link](nom + " dit : Bonjour !");
}
}
// Interface pour ajouter un comportement spécifique
interface Soigneur {
void nourrir(Animal animal);
}
// Classe qui implémente l'interface
class Employe implements Soigneur {
private String nom;
public Employe(String nom) {
[Link] = nom;
}
public String getNom() {
return nom;
}
@Override
public void nourrir(Animal animal) {
[Link](nom + " nourrit " + [Link]() + ".");
[Link]();
}
}
// Classe principale pour la gestion du zoo
class Zoo {
private List<Animal> animaux;
private List<Employe> soigneurs;
public Zoo() {
animaux = new ArrayList<>();
soigneurs = new ArrayList<>();
}
// Ajouter un animal au zoo
public void ajouterAnimal(Animal animal) {
[Link](animal);
[Link]([Link]() + " a été ajouté au zoo.");
}
// Ajouter un soigneur au zoo
public void ajouterSoigneur(Employe soigneur) {
[Link](soigneur);
[Link]([Link]() + " a rejoint l'équipe des
soigneurs.");
}
// Afficher les animaux du zoo
public void afficherAnimaux() {
[Link]("\nListe des animaux dans le zoo :");
for (Animal animal : animaux) {
[Link]("- " + [Link]() + ", Âge : " +
[Link]());
}
}
// Nourrir tous les animaux
public void nourrirAnimaux() {
[Link]("\nNourrissage des animaux :");
for (Animal animal : animaux) {
for (Employe soigneur : soigneurs) {
[Link](animal);
}
}
}
}
// Classe principale (point d'entrée du programme)
public class Main {
public static void main(String[] args) {
// Création du zoo
Zoo zoo = new Zoo();
// Création des animaux
Animal lion = new Lion("Simba", 5);
Animal perroquet = new Perroquet("Coco", 2);
// Ajout des animaux au zoo
[Link](lion);
[Link](perroquet);
// Création des soigneurs
Employe soigneur1 = new Employe("Alice");
Employe soigneur2 = new Employe("Bob");
// Ajout des soigneurs au zoo
[Link](soigneur1);
[Link](soigneur2);
// Affichage des animaux dans le zoo
[Link]();
// Nourrir les animaux
[Link]();
}
}