0Pricing
C# Academy · Lektion

Abstrakte Klassen

Erkunden Sie abstrakte Klassen und ihre Rolle beim Erstellen einer gemeinsamen Struktur für abgeleitete Klassen

Abstrakte Klassen ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 6. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 6 Lektionen.

Abstrakte Klassen

Abstrakte Klassen

Willkommen zur nächsten Lektion! In dieser Lektion lernen Sie abstrakte Klassen in C# kennen, erfahren, welchem Zweck sie dienen und worin sie sich von Schnittstellen unterscheiden. Legen wir los!

Abstrakte Klassen — Illustration 1

Was ist eine abstrakte Klasse?

Was ist eine abstrakte Klasse?

Eine abstrakte Klasse ist eine Klasse, die nicht direkt instanziiert werden kann. Sie dient als Vorlage für andere Klassen und kann abstrakte Methoden enthalten, die von abgeleiteten Klassen implementiert werden müssen.

Wichtiger Punkt: Abstrakte Klassen können sowohl vollständig implementierte Methoden als auch nur deklarierte Methoden (abstrakte Methoden) enthalten.

Eine abstrakte Klasse definieren

Eine abstrakte Klasse definieren

Um eine abstrakte Klasse zu definieren, verwenden Sie das Schlüsselwort abstract. Beispiel:

Tipp: Verwenden Sie abstrakte Klassen, um eine gemeinsame Basisklasse für verwandte Klassen bereitzustellen.

using System;

abstract class Animal {
    public abstract void Speak(); // Abstract method
    public void Sleep() { // Non-abstract method
        Console.WriteLine("The animal is sleeping.");
    }
}

Eine abstrakte Klasse implementieren

Eine abstrakte Klasse implementieren

Abgeleitete Klassen müssen alle abstrakten Methoden der abstrakten Klasse implementieren. Beispiel:

Wichtiger Punkt: Abstrakte Methoden definieren Verhalten, das von abgeleiteten Klassen implementiert werden muss.

using System;

abstract class Animal {
    public abstract void Speak(); // Abstract method
    public void Sleep() {
        Console.WriteLine("The animal is sleeping.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Program {
    static void Main() {
        Dog myDog = new Dog();
        myDog.Speak(); // Outputs: The dog barks.
        myDog.Sleep(); // Outputs: The animal is sleeping.
    }
}

Abstrakte Klassen und Schnittstellen im Vergleich

Abstrakte Klassen und Schnittstellen im Vergleich

Sowohl abstrakte Klassen als auch Schnittstellen werden für die Abstraktion verwendet, unterscheiden sich jedoch in mehreren Punkten:

  • Abstrakte Klassen können sowohl implementierte als auch abstrakte Methoden enthalten, während Schnittstellen vor C# 8.0 nur abstrakte Methoden enthalten konnten.
  • Abstrakte Klassen können Felder, Konstruktoren und Zugriffsmodifizierer für Member enthalten.
  • Eine Klasse kann nur eine abstrakte Klasse erben, aber mehrere Schnittstellen implementieren.

Tipp: Verwenden Sie abstrakte Klassen für eng verwandte Klassen und Schnittstellen für eine umfassendere Abstraktion.

Wann abstrakte Klassen verwenden?

Wann abstrakte Klassen verwenden?

Abstrakte Klassen eignen sich am besten, wenn:

  • Sie eine gemeinsame Basisklasse mit gemeinsam genutzter Funktionalität definieren möchten.
  • Sie nicht abstrakte Methoden mit einer Standardimplementierung einschließen müssen.
  • Sie mit verwandten Klassen arbeiten, die eine gemeinsame Hierarchie bilden.

Beispiel: Eine abstrakte Klasse „Shape“ für die Klassen „Circle“ und „Rectangle“.

Übungsaufgabe

Übungsaufgabe

Erstellen Sie eine abstrakte Klasse Shape mit einer abstrakten Methode CalculateArea(). Implementieren Sie diese Methode in den abgeleiteten Klassen Rectangle und Circle. Beispiel:

using System;

abstract class Shape {
    public abstract double CalculateArea();
}

class Rectangle : Shape {
    public double Width { get; set; }
    public double Height { get; set; }

    public override double CalculateArea() {
        return Width * Height;
    }
}

class Circle : Shape {
    public double Radius { get; set; }

    public override double CalculateArea() {
        return Math.PI * Radius * Radius;
    }
}

class Program {
    static void Main() {
        Shape rectangle = new Rectangle { Width = 5, Height = 4 };
        Shape circle = new Circle { Radius = 3 };

        Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
        Console.WriteLine("Circle Area: " + circle.CalculateArea());
    }
}

Bewährte Vorgehensweisen bei abstrakten Klassen

Bewährte Vorgehensweisen bei abstrakten Klassen

Hier sind einige bewährte Vorgehensweisen:

  • Verwenden Sie abstrakte Klassen, wenn Sie gemeinsam genutzte Funktionalität haben, die vererbt werden soll.
  • Halten Sie die abstrakte Klasse fokussiert und vermeiden Sie unnötige Member.
  • Kombinieren Sie abstrakte Klassen bei Bedarf mit Schnittstellen.

Tipp: Abstrakte Klassen sollten eine solide Grundlage für abgeleitete Klassen bilden.

Gute Arbeit!

Gute Arbeit!

Herzlichen Glückwunsch! Sie haben gelernt, wie Sie abstrakte Klassen verwenden, um gemeinsames Verhalten zu definieren und Konsistenz in abgeleiteten Klassen sicherzustellen. In der nächsten Lektion beschäftigen wir uns mit statischen Membern und Methoden in C#. Programmieren wir weiter!

Abstrakte Klassen — Illustration 10

Häufig gestellte Fragen

Ist die Lektion „Abstrakte Klassen“ kostenlos?

Ja — der vollständige Text von „Abstrakte Klassen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 6 Lektionen.

Was lerne ich in „Abstrakte Klassen“?

Erkunden Sie abstrakte Klassen und ihre Rolle beim Erstellen einer gemeinsamen Struktur für abgeleitete Klassen Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 6.

Wie lange dauert die Lektion „Abstrakte Klassen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Einführung in Interfaces
  2. Abstrakte Klassen
  3. Statische Member und Methoden
  4. Enums und Structs erkunden
  5. Delegates und Events
  6. Arbeiten mit Collections: Listen, Wörterbüchern und Warteschlangen
← Zurück zu C# Academy