TD Animal

- Attributs:
    Nombre de pattes
    avancer(nb) : Position + nb * nombre de pattes

Classe Animal
- Attribut : 
    Nom
    Position = 0 au début
   toString() -> Doit afficher nom + race si elle existe + cri + position 
- Methodes :
   cri() ->  Permet d'obtenir le cri de l'animal (Wouf, Miaou, Coin, ...) 

Classe Canard
Classe Chien
Classe Chat
Classe Poisson
- Methodes :
nager() -> Position = Position + 6

Classe MainCoon (race de chat)
    -> avance 2 fois plus vite qu'un chat
Classe Caniche (race de chien)
    -> avance 0.5 fois plus lentement qu'un chien
Classe Pitbull 
    -> avance 1.5 fois plus rapidement qu'un chien 

 

public class Program
{
    public static void Main()
    {
        MainCoon mainCoon = new MainCoon("John Snow");
        Console.WriteLine(mainCoon);
        mainCoon.Avancer(10);
        Console.WriteLine(mainCoon);
        Chat chatQuelconque = new Chat("Neko");
        Console.WriteLine(chatQuelconque);
        chatQuelconque.Avancer(10);
        Console.WriteLine(chatQuelconque);
        Poisson poisson = new Poisson("Nemo");
        Console.WriteLine(poisson);
        poisson.Nager();
        Console.WriteLine(poisson);
        Caniche caniche = new Caniche("Jean Paul du grand lac");
        Console.WriteLine(caniche);
        caniche.Avancer(10);
        Console.WriteLine(caniche);
        Pitbull molosse = new Pitbull("Molosse");
        Console.WriteLine(molosse);
        molosse.Avancer(10);
        Console.WriteLine(molosse);
    }
}

 

Doit donner :

John Snow  <<Miaou>>  (position = 0) (Race = MainCoon)
John Snow  <<Miaou>>  (position = 80) (Race = MainCoon)
Neko  <<Miaou>>  (position = 0)
Neko  <<Miaou>>  (position = 40)
Nemo  <<Blblblblb>>  (position = 0)
Nemo  <<Blblblblb>>  (position = 6)
Jean Paul du grand lac  <<Wouf>>  (position = 0) (Race = Caniche)
Jean Paul du grand lac  <<Wouf>>  (position = 20) (Race = Caniche)
Molosse  <<Wouf>>  (position = 0) (Race = Pitbull)
Molosse  <<Wouf>>  (position = 80) (Race = Pitbull)

public class Animal {
    public string Nom {set; get;}
    
    public int Position {set; get;}
    
    public Animal(string nom) {
        this.Nom = nom;    
        this.Position = 0;
    }
    
    public override string ToString() {
        return this.Nom + "  <<" + this.Cri() + ">>  (position = " + this.Position + ")";    
    }
    
    virtual public string Cri() {
        return "";
    }
    
}

public class Mammifere : Animal {
    public int NbPattes {set; get;}
    
    public Mammifere(string nom, int nbPattes) : base(nom) {
        this.NbPattes = nbPattes;
    }
    
    virtual public void Avancer(int nb) {
        this.Position += nb * this.NbPattes;     
    }
}

public class Canard : Mammifere {
    
    public Canard(string nom) : base(nom, 2) {    
    }
    
    public override string Cri() {
        return "Coin";    
    }
}

public class Chien : Mammifere {
    
    public Chien(string nom) : base(nom, 4) {    
    }
    
    public override string Cri() {
        return "Wouf";    
    }
}


public class Chat : Mammifere {
    
    public Chat(string nom) : base(nom, 4) {    
    }
    
    public override string Cri() {
        return "Miaou";    
    }
}


public class Poisson : Animal {
    
    public Poisson(string nom) : base(nom) {    
    }
    
    public override string Cri() {
        return "Blblblblb";    
    }
    
    public void Nager() {
        this.Position += 6;    
    }
}


public class MainCoon : Chat {
    
    public MainCoon(string nom) : base(nom) {
    }
    
    public override void Avancer(int nb) {
        base.Avancer(nb * 2);    
    }
    
    public override string ToString() {
        return base.ToString() + " (Race = MainCoon)";
    }
}


public class Caniche : Chien {
    
    public Caniche(string nom) : base(nom) {
    }
    
    public override void Avancer(int nb) {
        base.Avancer(nb / 2);    
    }
    
    public override string ToString() {
        return base.ToString() + " (Race = Caniche)";
    }
}

public class Pitbull : Chien {
    
    public Pitbull(string nom) : base(nom) {
    }
    
    public override void Avancer(int nb) {
        base.Avancer(nb * 2);    
    }
    
    public override string ToString() {
        return base.ToString() + " (Race = Pitbull)";
    }
}


                    
public class Program
{
    public static void Main()
    {
        MainCoon mainCoon = new MainCoon("John Snow");
        Console.WriteLine(mainCoon);
        mainCoon.Avancer(10);
        Console.WriteLine(mainCoon);
        Chat chatQuelconque = new Chat("Neko");
        Console.WriteLine(chatQuelconque);
        chatQuelconque.Avancer(10);
        Console.WriteLine(chatQuelconque);
        Poisson poisson = new Poisson("Nemo");
        Console.WriteLine(poisson);
        poisson.Nager();
        Console.WriteLine(poisson);
        Caniche caniche = new Caniche("Jean Paul du grand lac");
        Console.WriteLine(caniche);
        caniche.Avancer(10);
        Console.WriteLine(caniche);
        Pitbull molosse = new Pitbull("Molosse");
        Console.WriteLine(molosse);
        molosse.Avancer(10);
        Console.WriteLine(molosse);
    }
}