Ankündigung

Einklappen
Keine Ankündigung bisher.

C# Instanziierung

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • C# Instanziierung

    Moin!
    Habe folgenden Code:

    class Program
    {
    static void Main(string[] args)
    {
    Hund hund = new Hund();
    hund.Bellen();

    Dackel dackel = new Dackel();
    dackel.Bellen();

    Hund nochEinDackel = new Dackel();
    nochEinDackel.Bellen();

    Console.ReadKey();
    }
    }
    class Hund
    {
    public virtual void Bellen()
    {
    Console.WriteLine("Wau");
    }
    }
    class Dackel : Hund
    {
    public override void Bellen()
    {
    Console.WriteLine("Wau wau");
    }
    }


    Mich würde jetzt Interessieren was "Hund nochEinDackel = new Dackel();" genau bedeutet.
    Hätte vorher immer beim initialisieren quasi die Klasse vorne geschrieben und am ende wieder die Klasse, aber hier sind
    ja zwei verschiedene Klassen beim initialisieren (Hund und Dackel).

    MfG Markus

  • #2
    Hallo!

    Die Klasse "Dackel" leitet sich ja von der Klasse "Hund" ab.

    Ein Dackel ist also ein Hund und deshalb kommt die Polymorphie zum Einsatz und es wird Bellen vom Dackel ausgeführt.

    Du kannst das Verhalten ändern, indem du statt "override" das Wort "new" in Bellen verwendest.

    PHP-Code:
        class Dackel Hund
        
    {
            public new 
    void Bellen()
            {
                
    Console.WriteLine("Wau wau");
            }
        } 
    Eine genaue Erklärung findest du zum Beispiel hier.

    http://openbook.rheinwerk-verlag.de/...f-f820e4031a5f



    Kommentar

    Lädt...
    X