class ·
Vererbung ·
Polymorphie ·
Interfaces ·
abstract ·
sealed
C# ist eine vollständig objektorientierte Sprache. Diese Konzepte sind essenziell für die Entwicklung von robusten, wartbaren und erweiterbaren Anwendungen im .NET-Ökosystem.
Klassen definieren den Bauplan für Objekte. Sie enthalten Daten (Eigenschaften) und Verhalten (Methoden). Objekte werden mit dem new-Operator erzeugt.
| Konzept | Beschreibung | Beispiel |
|---|---|---|
| Eigenschaften | Daten mit Getter/Setter | public string Name { get; set; } |
| Felder | Private Daten | private int _id; |
| Konstruktor | Initialisiert Objekte | public Person(string name) { } |
| Methoden | Verhalten | public void Greet() { } |
| this | Referenz auf sich selbst | this.Name = name; |
{ get; set; }) für einfache Daten. Für komplexe Logik implementieren Sie Getter/Setter manuell.
Vererbung ermöglicht es, eine neue Klasse auf Basis einer bestehenden zu definieren. Die abgeleitete Klasse erbt alle Member der Basisklasse und kann diese erweitern oder überschreiben.
| Schlüsselwort | Beschreibung |
|---|---|
| virtual | Kann in abgeleiteten Klassen überschrieben werden |
| override | Überschreibt eine virtuelle Methode |
| base | Zugriff auf Member der Basisklasse |
| new | Versteckt eine Basis-Methode (selten) |
| abstract | Muss überschrieben werden (siehe abstrakte Klassen) |
| sealed | Verhindert weitere Vererbung |
base im Konstruktor, um den Basis-Konstruktor aufzurufen. Verwenden Sie virtual und override für polymorphes Verhalten.
Polymorphie bedeutet, dass ein Objekt mehrere Typen haben kann. Eine Variable vom Basisklassen-Typ kann ein Objekt einer abgeleiteten Klasse enthalten – das überschriebene Verhalten wird zur Laufzeit aufgerufen.
is für Typprüfungen und as für sichere Typumwandlungen (returniert null bei Fehlschlag statt Exception).
Interfaces definieren einen Vertrag – alle Klassen, die ein Interface implementieren, müssen dessen Member bereitstellen. Sie ermöglichen lose Kopplung und Polymorphie ohne Vererbung.
Abstrakte Klassen können nicht instanziiert werden. Sie dienen als Basis für andere Klassen und können abstrakte Methoden enthalten, die in abgeleiteten Klassen implementiert werden müssen.
sealed verhindert, dass eine Klasse vererbt wird. static bedeutet, dass der Member zur Klasse gehört, nicht zu einem Objekt – es wird keine Instanz benötigt.
sealed, um unerwünschte Vererbung zu verhindern. Verwenden Sie static für Hilfsfunktionen, die keinen Zustand benötigen. Verwenden Sie const für Werte, die zur Kompilierzeit bekannt sind.
class
:
override
interface
abstract
sealed
class Hund : Tier { public override void Laut() => Console.WriteLine("Wuff"); } ·
interface ILogger { void Log(string msg); }