Hériter de plusieurs classes en C#

Saad Aslam 12 octobre 2023
Hériter de plusieurs classes en C#

Une classe ou un objet peut hériter des fonctionnalités et des caractéristiques d’un ou plusieurs objets ou classes parents dans le langage POO. Lorsqu’une sous-classe nécessite l’accès à tout ou partie des propriétés d’une classe parente, l’héritage est utilisé.

C’est également pratique lorsque la classe d’un enfant doit fusionner de nombreux constructeurs de classe de base. Dans ce tutoriel, nous verrons comment implémenter plusieurs héritages en C#.

Implémenter l’héritage multiple en C#

Dans le langage C#, la technique la plus connue et la plus simple est l’utilisation d’interfaces. Ici, nous avons un exemple dans lequel nous allons implémenter l’héritage de plusieurs classes pour calculer l’IMC.

Nous allons apprendre cela étape par étape. Tout d’abord, nous devons importer la bibliothèque System pour accéder aux méthodes utilisées en C#.

using System;

Nous allons créer une classe nommée Attributes avec les méthodes setter, que nous utiliserons pour récupérer les valeurs des autres classes. Déclarez à l’intérieur deux variables de type double nommées weight et height.

Nous les garderons protégés, ce qui signifie qu’ils ne seront accessibles à personne en dehors de notre classe. Créez ensuite une méthode setWeight() avec un argument de type double w qui affecte la valeur fournie à weight, et créez la méthode setHeight() qui définira la valeur de height dans le même façon que celui-ci.

class Attributes {
  protected double weight;
  protected double height;
  public void setWeight(double w) {
    weight = w;
  }

  public void setHeight(double h) {
    height = h;
  }
}

Ensuite, créez une interface RetrieveAge contenant une méthode de type double retrieveAge qui prend un argument age de type de données double.

public interface RetrieveAge {
  double retrieveAge(double age);
}

Créez une classe BMI qui héritera de deux classes, Attributes et RetrieveAge. Nous allons créer 4 méthodes pour récupérer les valeurs de leurs classes parentes à l’intérieur de cette classe.

La première méthode est un double type de données appelé retrieveBMI(), qui obtient le poids et la taille de la classe parente Attributs, divise le poids par le carré de la taille et renvoie le résultat. Les deux méthodes suivantes, retrieveHeight() et retrieveWeight(), vont récupérer les valeurs de taille et de poids et les retourner.

La dernière méthode, retrieveAge(), étend la méthode de RetrieveAge qui prend un argument age de type double et le retourne.

class BMI : Attributes, RetrieveAge {
  public double retrieveBMI() {
    return (weight / (height * height));
  }

  public double retrieveHeight() {
    return height;
  }

  public double retrieveWeight() {
    return weight;
  }

  public double retrieveAge(double age) {
    return age;
  }
}

Nous créons notre classe finale qui aura la fonction Main(). Dans la fonction principale, créez une instance de classe BMI.

Utilisez les méthodes setHeight() et setWeight() pour attribuer la taille et le poids. Enfin, nous devons afficher la taille, le poids, l’IMC calculé et l’âge.

Code complet :

using System;

class Attributes {
  protected double weight;
  protected double height;
  public void setWeight(double w) {
    weight = w;
  }

  public void setHeight(double h) {
    height = h;
  }
}

public interface RetrieveAge {
  double retrieveAge(double age);
}

class BMI : Attributes, RetrieveAge {
  public double retrieveBMI() {
    return (weight / (height * height));
  }

  public double retrieveHeight() {
    return height;
  }

  public double retrieveWeight() {
    return weight;
  }

  public double retrieveAge(double age) {
    return age;
  }
}

class TotalBMI {
  static void Main() {
    BMI bmi = new BMI();
    bmi.setWeight(80);
    bmi.setHeight(2.07);

    Console.WriteLine("Your Height: {0} m", bmi.retrieveHeight());
    Console.WriteLine("Your Weight: {0} kg", bmi.retrieveWeight());
    Console.WriteLine("BMI: {0}", bmi.retrieveBMI());
    Console.WriteLine("Age: {0}", bmi.retrieveAge(40));
  }
}

Production:

Your Height: 2.07 m
Your Weight: 80 kg
BMI: 18.6702140073281
Age: 40
Auteur: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

Article connexe - Csharp Class