Objektorientiertes C#

Polymorphie in C#

In dieser Lektion rufst du mit Polymorphie über einen gemeinsamen Typ dieselbe Methode für verschiedene Formen auf.

Einführung

Polymorphie (polymorphism) erlaubt es, über einen gemeinsamen Typ mit vielen verschiedenen Objektarten zu arbeiten, ohne jede Art mit if prüfen zu müssen. Jede Objektart entscheidet selbst, wie sie ihre Methode ausführt.

Die abstrakte Klasse Shape deklariert die Methode Area() ohne Implementierung, und Circle und Square implementieren jeweils mit override ihre eigene Flächenberechnung. Obwohl die Schleifenvariable shape den gemeinsamen Typ Shape hat, ruft das Programm zur Laufzeit automatisch die richtige Version jedes Objekts auf, das Ergebnis ist 12.57 und 9.00.

Ausführbares C#-Beispiel

C#
Code ausführen →
Program.cs
using System;

abstract class Shape { public abstract double Area(); }
class Circle(double radius) : Shape { public override double Area() => Math.PI * radius * radius; }
class Square(double side) : Shape { public override double Area() => side * side; }

class Program
{
    static void Main()
    {
        Shape[] shapes = { new Circle(2), new Square(3) };
        foreach (Shape shape in shapes) Console.WriteLine($"{shape.Area():F2}");
    }
}
Ergebnis der Ausführung
12.57
9.00

Mit dem Debugger üben

Setze einen Haltepunkt auf eine wichtige Zuweisung oder Bedingung, klicke auf Debug und sieh dir die lokalen Werte an, bevor du zur nächsten Zeile gehst.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges