Objektorientierung
Überblick
Die wichtigsten Unterschiede in C# zu anderen Programmiersprachen in Objektorientierung sind:
- Methoden die überschrieben werden sollen müssen mit
virtual
oder bzw.abstract
markiert sein. - Mit den Schlüsselwort
override
kann eine Methode überschrieben werden und mit dem Schlüsselwortnew
kann eine Methode verdeckt werden. Genaueres siehe im Beispiel.
Beispiel:
internal class Oma
{
public void CantOverride()
{
Console.WriteLine("Mich kann man nicht überschreiben");
}
public virtual void CanOverride()
{
Console.WriteLine("Mich kann man überschreiben");
}
}
internal class Mutter1 : Oma
{
public override void CanOverride()
{
base.CanOverride();
Console.WriteLine("Ich wurde zuerst in der Mutterklasse aufgerufen und überschrieben");
}
}
internal class Mutter2 : Oma
{
public new void CanOverride()
{
//base.CanOverride(); -> FEHLER
Console.WriteLine("Die Methode CanOverride wurde von mir verdeckt. Daher kann ich die Methode CanOverride aus der Mutter-Klasse nicht aufrufen");
}
}
internal class Tochter1 : Mutter1
{
public override void CanOverride()
{
base.CanOverride();
Console.WriteLine("Mich kann man weiterhein überschreiben");
}
}
internal class Tochter2 : Mutter2
{
// Kann nicht überschrieben werden, da new in der Mutter2 Klasse verwendet wurde
//public override void CanOverride()
//{
//}
}
- Mit dem Schlüsselwort
protected
kann auf Methoden nur aus der Methode selbst oder aus abgeleiteten Klassen zugegriffen werden.