Repository navigation
IT CSharp Inheritance Interfaces
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Una classe ha una classe base e può implementare più interfacce. virtual consente l'override, override lo implementa, abstract richiede l'implementazione da parte dell'erede, sealed limita l'ereditarietà. base si riferisce all'implementazione sottostante; new nasconde il membro e non sostituisce override.
Salvare questo esempio separatamente come Example.cs. Eseguirlo indipendentemente dagli altri esempi di questa pagina.
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"; }Risultato:
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());Le interfacce descrivono un contratto, non un'operazione di gioco finita. L'implementazione esplicita dell'interfaccia consente di separare i membri con lo stesso nome. Il moderno C# supporta implementazioni predefinite e membri astratti statici delle interfacce in contratti generici adeguati.
Documentazione ufficiale: Ereditarietà, interfacce e polimorfismo - Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE