C Sharp Vererbung

Eine der wichtigsten Techniken der objektorientierten Programmierung die sogenannte C# Vererbung (engl. Inheritance). Bei der Vererbung geht es darum Methoden, Variablen und Eigenschaften an eine andere Klasse weiterzugeben um Wiederholungen im Code zu vermeiden.

Beispiel C# Vererbung zur Veranschaulichung

Gehen wir mal davon aus, dass du ein Programm für eine KFZ Werkstatt programmieren musst. Die Werkstatt repariert Autos und Motorräder. Ich denke, dass du mir zustimmen wirst, wenn ich dir sage, dass sowohl ein Auto und ein Motorrad sich zwar ähnlich sind aber nicht identisch.

Lerne C#, den einfach Weg!
Programmieren lernen muss nicht schwer sein!

Ein Auto ist ein Fahrzeug und ein Motorrad ist auch ein Fahrzeug. Das Auto hat vier Räder und das Motorrad hat im Gegensatz dazu nur zwei. Bei der Vererbung erstellen wir immer eine so genannte Basis-Klasse (engl. Base-Class). In diesem Szenario wäre das Fahrzeug (engl. Vehicle):

public class Vehicle {

}

Im nächsten Schritt geben wir Vehicle die Methoden und Felder, die alle spezifischeren Klassen (z.B. Motorrad oder Auto) gemeinsam haben:

public class Vehicle {

    public int wheels = 4;
    public int maxSpeed = 200;


    pubic void Drive(){
    
    }
}

Unsere Basis-Klasse Vehicle beinhaltet jetzt zwei Variablen und eine Methode, die sowohl für das Motorrad als auch für das Auto funktionieren.

Im nächsten Schritt erstellen wir unsere spezifischen Klassen Car und Motorcycle:

public class Car {

}

public class Motorcycle {

}

Eine Klasse vererben (ableiten)

Damit die C# Vererbung jetzt in Gang kommt (Wortspiel beabsichtigt), leiten wir Car und Motorcycle von unserer Basis-Klasse Vehicle ab. Dafür verwendest du den Doppelpunkt : nach dem Namen der Klasse:

public class Car : Vehicle { // Car erbt von Vehicle

}

public class Motorcycle : Vehicle { // Motorcycle erbt von Vehicle

}

Sowohl Car als auch Motorcycle sind jetzt von Vehicle abgeleitet und erben damit alle öffentlichen public als auch die geschützten protected Variablen, Eigenschaften und Methoden.

Wichtig: Private private Variablen, Eigenschaften und Methoden werde nicht vererbt!

Wir können jetzt also eine Instanz von Car oder Motorcycle erstellen und dort auf die Methode Drive() und auf die beiden Variablen wheels und maxSpeed zugreifen:

public class Program {

    static void Main(){
    
        Car myCar = new Car();
        myCar.Drive();

        Motorcycle myMotorcycle = new Motorcycle();
        myMotorcycle.wheels = 2;
        myMotorcycle.maxSpeed = 280;
        myMotorcycle.Drive();    
    }

}

Wieso in C# Vererbung anwenden?

Hätten wir unsere Basis-Klasse Vehicle nicht erstellt, so hätten wir sowohl für die Motorcycle Klasse als auch für die Car Klasse die gleichen Felder und Methoden 2x anlegen müssen. Wir hätten damit doppelten/gleichen Code programmiert und das entspricht nicht dem DRY (Don’t Repeat Yourself) Prinzip oder der objektorientierten Programmierung.

Spezialisierung

Da Motorcycle und Car natürlich komplett funktionsfähige Klassen sind, können wir Ihnen jetzt auch ihre eigenen spezifischen Funktionalitäten hinzufügen. Mit einem Auto kann man typischer Weise keinen Wheely (auf einem Rad fahren) machen aber mit einem Motorrad würde das gehen. Deswegen erstellen wir jetzt eine Wheely() Methode in der Motorcycle Klasse (nicht in der Vehicle Klasse):

public class Motorcycle {

    public void Wheely(){
        // Das Motorrad fährt nur auf dem Hinterrad
    }

}

In unserem Programm können wir diese Wheely() Methode jetzt natürlich auch nur auf unserer Instanz der Motorcycle Klasse aufrufen. Beachte bitte, dass bei Car also ein Error auftritt:

public class Program {

    static void Main(){    
        Car myCar = new Car();
        myCar.Wheely(); // ERROR -> Car hat keine Methode Wheely();

        Motorcycle myMotorcycle = new Motorcycle();
        myMotorcycle.Wheely(); // Läuft!  
    }

}

Vererbung in C# ist ein unglaublich wichtiger Bestandteil des Clean-Code Prinzips und der objektorientierten Programmierung. Verwende die Vererbung zukünftig, wenn du merkst, dass sich mehrere Klassen gleichen werden und es Sinn machen würde eine Basis-Klasse zu erstellen um die spezifischen Sub-Klassen davon abzuleiten (vererben zu lassen). Wenn du noch mehr über Vererbung in C# lernen möchtest dann schau mal hier.

Programmieren lernen muss nicht schwer sein! Mit meinem C# Video-Intensivkurs wirst du ganz einfach und im Handumdrehen zum echten .NET Profi! Schau dir jetzt den Videokurs an um zügig ein besserer Entwickler zu werden, mehr Geld zu verdienen oder deinen ersten Job als Quereinsteiger zu finden.

Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Videokurs wirst du ganz einfach zum echten Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Videokurs wirst du im Handumdrehen zum echten Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Diese Seite verwendet Cookies. Wir können diese zur Analyse unserer Besucherdaten platzieren, um unsere Website zu verbessern, personalisierte Inhalte anzuzeigen und Ihnen ein großartiges Website-Erlebnis zu bieten. Für weitere Informationen zu den von uns verwendeten Cookies öffnen Sie die Einstellungen.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.