Polymorphie funktioniert nicht
-
Hi,
ich habe zwei Klassen, bei der die eine von der anderen erbt und wollte nun Polymorhie realisieren. Mein Code sieht so aus:using System; using System.Collections.Generic; using System.Text; namespace Test { class Program { static void Main(string[] args) { //Basisklassenreferenz erstellt Objekt von abgeleiteter Klasse Basis obj = new Abgeleitet(); //Polymorphie obj.Funktion(); Console.ReadLine(); } } class Basis { //Die Funktion ist virtuell public virtual void Funktion() { Console.WriteLine("Basisklasse"); } } class Abgeleitet : Basis { public virtual void Funktion() { Console.WriteLine("Abgeleitete Klasse"); } } }
Warum lautet die Ausgabe
Basisklasse
und nicht
Abgeleitete Klasse
? Die Funktion ist doch virtuell.
-
class Abgeleitet : Basis { public override void Funktion() { Console.WriteLine("Abgeleitete Klasse"); } }
-
Interessant. Aber warum ist dann so eine Methode nicht per default als "overriden" definiert?