Zum Hauptinhalt springen

Objektorientierung

Überblick

Die wichtigsten Unterschiede in C# zu anderen Programmiersprachen in Objektorientierung sind:

  1. Methoden die überschrieben werden sollen müssen mit virtual oder bzw. abstract markiert sein.
  2. Mit den Schlüsselwort override kann eine Methode überschrieben werden und mit dem Schlüsselwort new 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()
//{
//}
}

  1. Mit dem Schlüsselwort protected kann auf Methoden nur aus der Methode selbst oder aus abgeleiteten Klassen zugegriffen werden.

Kommentare