---

Polymorphie mit C# und Java
· 2007-09-07 12:45

Obwohl die Syntax von Java und C# sehr ähnlich sind, gibt es doch auch sehr gravierende Unterschiede. Denn während in Java alle Methode implizit als virtuell gelten, so muss dies bei C# extra mit dem keyword virtual gekennzeichnet werden wie auch bei C++. Um diesen Unterschied zu veranschaulichen, habe ich hier einmal den entsprechenden Code in C# und Java gegenübergestellt.

Beispiel in C# : Polymorphie.cs
using System;

namespace Livoris.EinfacherCode
{
    class Vater
    {
        public virtual void print()
        {
            Console.WriteLine("VATER!");
        }

    }

    class Sohn : Vater
    {
        public override void print()
        {
            Console.WriteLine("SOHN!");
        }
    }

    class Polymorphie
    {
        static void Main(string[] args)
        {
            Vater v = new Vater();
            v.print();      /* VATER */
            Sohn s = new Sohn();
            s.print();      /* SOHN  */
            v = s;
            v.print();      /* SOHN  */
        }
    }
}
Download this code

Beispiel in Java : Polymorphie.java
package de.livoris.einfachercode;

public class Polymorphie {

    class Vater {
        public void print() {
            System.out.println("VATER");
        }
    }
   
    class Sohn extends Vater {
        public void print() {
            System.out.println("SOHN");
        }
    }
   
    public Polymorphie() {
        Vater v = new Vater();
        v.print();      /* VATER */
        Sohn s = new Sohn();
        s.print();      /* SOHN */
        v = s;
        v.print();      /* SOHN */     
    }
   
    public static void main(String[] args) {
        new Polymorphie();
    }

}
 
Download this code

— Webmaster

Kommentarfunktion für diesen Artikel geschlossen