Repository navigation
DE CSharp Inheritance Interfaces
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Eine Klasse hat eine Basisklasse und kann mehrere Schnittstellen implementieren. virtual ermöglicht das Überschreiben, override implementiert es, abstract erfordert die Implementierung durch den Erben, sealed schränkt die Vererbung ein. base bezieht sich auf die zugrunde liegende Implementierung; new verbirgt das Mitglied und ersetzt nicht override.
Speichern Sie dieses Beispiel separat als Example.cs. Führen Sie es unabhängig von den anderen Beispielen dieser Seite aus.
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"; }Ergebnis:
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());Schnittstellen beschreiben einen Vertrag, keinen abgeschlossenen Spielbetrieb. Durch die explizite Implementierung der Schnittstelle können Sie Mitglieder mit demselben Namen trennen. Modern C# unterstützt Standardimplementierungen und statische abstrakte Mitglieder von Schnittstellen in geeigneten generischen Verträgen.
Offizielle Dokumentation: Vererbung, Schnittstellen und Polymorphismus – Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE