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?


Anmelden zum Antworten