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
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}");
}
}
12.57
9.00Mit dem Debugger üben
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