Unter Polymorphie versteht man, wenn eine Klasse von der anderen erbt.
Dabei nimmt eine Klasse die Rolle der Elternklasse und die anderen, die einer Kindklasse an.
Bedingung:
- Eigenschaft/Methode muss gleich heißen
- Die Kindklasse erbt die Elternklasse (LKW : PKW)
- die Methode der Eltern muss virual sein
- die Methode des Kindes muss override sein (Das heißt die Elternmethode wird überschrieben/ ergänzt)
das base.[Methodenname] implementiert die Methode aus der Elternklasse in die Kindklasse
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class PKW { public virtual void werbung() { Console.WriteLine("Ich kann schnell fahren"); } } class LKW : PKW { public override void werbung() { base.werbung(); Console.WriteLine("und biete viel Platz"); } } |
erstellen wir nun ein Objekt von PKW und lassen die Methode aufrufen, bekommen wir als Ausgabe
1 |
Ich kann schnell fahren |
tun wir dasselbe mit der LKW Klasse, bekommen wir als Ausgabe:
1 |
Ich kann schnell fahren und biete viel Platz |
sealed – Klasse versiegeln
Generell kann jede Klasse von einer anderen Erben. Möchte man aber vermeiden, dass von einer Klasse geerbt werden soll, nutzt man den Ausdruck sealed. Dies ist Sinnvoll, wenn man weiß, dass man in der Vererbung in der letzten Instanz angekommen ist.
1 |
public sealed class LKW : PKW |
abstract – Abstrakte Klassen
Abstrakte Klassen sind Klassen, die reine vererbbare Klassen sind. Das bedeutet man kann aus der Klasse kein Objekt mehr erzeugen.
1 |
public abstract class LKW : PKW |
Login