Repository navigation
FR CSharp Inheritance Interfaces
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Une classe possède une classe de base et peut implémenter plusieurs interfaces. virtual permet la substitution, override l'implémente, abstract nécessite une implémentation par l'héritier, sealed restreint l'héritage. base fait référence à l'implémentation sous-jacente ; new masque le membre et ne remplace pas override.
Enregistrez cet exemple séparément dans Example.cs. Exécutez-le indépendamment des autres exemples de cette page.
Example.cs:
// PROJECT-EXAMPLE
ILabel item = new Item();
System.Console.WriteLine(item.Label);
interface ILabel { string Label { get; } }
class Item : ILabel { public string Label => "Ore"; }Résultat:
Ore
interface IDescription
{
string Describe();
}
abstract class Job : IDescription
{
public abstract string Describe();
}
sealed class GatherJob : Job
{
public override string Describe() => "Gathering job";
}
IDescription job = new GatherJob();
UO.Print(job.Describe());class NamedJob
{
public string Name { get; }
public NamedJob(string name) => Name = name;
public virtual string Report() => Name;
}
sealed class TimedJob : NamedJob
{
public TimedJob(string name) : base(name) { }
public override string Report() => base.Report() + " — timed";
}
UO.Print(new TimedJob("Search").Report());Les interfaces décrivent un contrat et non une opération de jeu terminée. L'implémentation explicite de l'interface vous permet de séparer les membres du même nom. Le C# moderne prend en charge les implémentations par défaut et les membres abstraits statiques des interfaces dans les contrats génériques appropriés.
Documentation officielle : Héritage, interfaces et polymorphisme - Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE