Bases de la POO: Abstraction

L’abstraction consiste à cacher les détails d’implémentation et à ne montrer que ce qui est nécessaire. Les classes abstraites ne peuvent pas être instanciées directement.

Elle définit un modèle avec des méthodes abstraites qui doivent être implémentée « obligatoirement » par les classes dérivées.

Les interfaces sont des structures qui définissent un « contrat » qui ne contient que les signatures de la méthode (ex. nom, paramètre mais pas d’implémentations), les classes qui étendent une interface doivent obligatoirement fournir une implémentation complète des méthodes définies dans l’interface.

Exemple:

Dog dog = new Dog();
Cat cat = new Cat();

dog.Speak();
cat.Speak();

dog.Sleep();
cat.Sleep();

dog.Attack(50);

Console.Read();

interface IAttack
{
    void Attack(int damage);
}

abstract class Animal
{
    public abstract void Speak();

    public void Sleep()
    {
        Console.WriteLine("Sleeping...");
    }
}

class Dog : Animal, IAttack
{
    public override void Speak()
    {
        Console.WriteLine("Bark!");
    }

    public void Attack(int damage)
    {
        Console.WriteLine($"Dog hits with {damage} points of damage.");
    }
}

class Cat : Animal
{
    public override void Speak()
    {
        Console.WriteLine("Meow!");
    }
}

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *