Getsuyodev, Programming is mainly used when constructing an application. Programming requires knowledge of application domains, algorithms, and programming language expertise. Programming can be developed in different logic based on developer knowledge.

C Sharp – Interface

Programmation en C# (C Sharp)



Une interface est un contrat, elle peut contenir des propriétés, des méthodes et des événements mais ne doit contenir aucun champ ou attribut.

· Une interface doit contenir des méthodes non implémentées.
· Une interface est héritable.
· On peut contsruire une hiérarchie d’interfaces.
· Pour pouvoir construire un objet à partir d’une interface, il faut définir une classe non abstraite implémentant toutes les méthodes de l’interface.
· Une classe peut implémenter plusieurs interfaces. Dans ce cas nous avons une excellente alternative à l’héritage multiple.

Exemple d'interface à 3 méthodes :
interface IVehicule
{
   void Demarrer( );
   void RépartirPassager( );
   void PériodicitéMaintenance( );
}

Une classe abstraite implémentant cette interface :
abstract class Terrestre : IVehicule 
{
    public abstract void Demarrer( );
    public virtual void RépartirPassager( ){...}
    public virtual void PériodicitéMaintenance( ){...}
}

Une classe concrète implémentant cette interface :
class Marin : IVehicule {
    public virtual void Demarrer( ) {...}
    public virtual void RépartirPassager( ){...}
    public virtual voidPériodicitéMaintenance( ){...}
}


using System;

interface IVehicule
{
void Demarrer( );
void RépartirPassager( int nb);
}

abstract class Terrestre : IVehicule 
{
private int nbr_passager = 0;
private int periode_maintenance = 0;

public abstract void Demarrer( ); // méthode abstraite virtuelle
public virtual void RépartirPassager( int nb)// méthode concrète virtuelle
{
nbr_passager =nb;
Console.WriteLine("Nombres de passagers = "+nb);
}
}

class Voiture : Terrestre 
{
public override void Demarrer( ) // redéfinition de méthode abstraite virtuelle
{
//...on explique comment démarrer une voiture
}
public override void RépartirPassager(int nb )// redéfinition de méthode concrète virtuelle
{
base.RépartirPassager(nb+2 ); // appel à la méthode mère de classe Terrestre
}
}

class Exercice
{
public static void Main(string[ ] args) // méthode principale de lancement de l'exécution
{
Voiture subaru =  new Voiture( );
subaru.RépartirPassager( 3 );
Console.ReadLine();
}
}



Comments are closed, but trackbacks and pingbacks are open.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More