Funktionen von Superklassen überladen
Man kann in der Programmierung Funktionen von Superklassen nicht nur mit den gleichen Parametern überschreiben, wenn man z.B. für diese Klasse gerade für diese Funktion spezielle Anforderungen hat. Sondern auch die Argumente die benötigt werden z.B. Das kann nützlich sein, wenn man z.B. allgemein die Funktionalität der Superklasse übernehmen möchte, jedoch manche Funktionen etwas besonders haben möchte.
Schauen wir uns dazu an wie man das in CSharp machen kann. Dazu baue ich auf dem Code vom letzten Artikel auf.
class Programm
{
public static void Main(string[] args)
{
Audi A4 = new Audi();
BMW M5 = new BMW();
A4.reparieren();
A4.reparieren("A4");
M5.reparieren();
Console.ReadLine();
}
}
class Auto
{
public void reparieren()
{
Console.WriteLine("Das Auto wurde repariert!");
}
}
class Audi : Auto
{
public void reparieren(string modell)
{
Console.WriteLine("Der Audi " + modell + " wurde repariert!");
}
}
class BMW : Auto
{
}
Du siehst also wir können mittel “Overloading” eine Funktion überschrieben und ihr somit unsere gewünschte Funktionalität geben.
Ähnlich wie beim einfachen Überschrieben der Funktionen, macht das Overloading häufig sogar noch mehr Sinn. Da macht das dann durchaus Sinn, wenn man eben die Funktionalität der Superklasse durch die eigene ersetzen oder erweitern möchte.