Vererbung in C#
Erben von einer Klassen
Es ist möglich Eigenschaften und Funktionen von einer Klasse zu erben.
Dies ist zum Beispiel sinnvoll, wenn man verschiedene Klassen hat mit einer oder mehreren gleichen Funktionen / Eigenschaften.
Ein sinnvolles Beispiel der Vererbung sind die Menschen.
Code:
- Public class Mensch: Form
- {
- Private int alter;
- Public void gehen(){
- }
- }
- Public class Frau: Mensch
- {
- Int Haarlänge;
- }
- Public class Mann: Mensch
- {
- Int Grösse;
Bei der oben gezeigten Vererbung wird gezeigt, dass 2 verschiedene Klassen zum grössten Teil in eine Unterklasse zusammengefasst werden können. Dabei wird das Beispiel des Menschen verwendet, da Mann und Frau im Grossen und Ganzen fast gleich sind.
Verwenden von Geerbten.
Dinge, welche man von einer anderen Klasse erbt, können im späteren Objekt wie Funktionen bzw. Eigenschaften von der eigenen Klasse verwendet werden.
Code:
- Mann TestMann = new Mann();
- TestMann.gehen();
Mehrfachvererbung / Interfaces
Eine Mehrfachvererbung wie in C oder C++ ist in C# nicht möglich. Der Grund dafür ist das Problem mit den gleichen Funktionsnamen.
Code:
- Public class Klasse1{
- Public void XYZ(){
- }
- }
- Public class Klasse2{
- Public void XYZ(){
- }
- }
Wenn man beide oben genannten Klassen erben könnte, würde es ein Problem geben, da man nicht beide Funktionen XYZ aufrufen kann. In C und C++ muss man klar angeben, welche Funktion bevorzugt werden soll.
Das genannte Problem wird in C# mit Interfaces gelöst. Interfaces sind eine Art Vorlage, was alles in einer Klasse vorkommen soll.
Code:
- interface IMensch
- {
- int Alter { get; }
- int Grösse { get; set; }
- bool Lauffen();
- }
Das get Schlüsselwort bedeutet, dass der Inhalt von aussen abgerufen werden kann.
Das set Schlüsselwort bedeutet, dass von aussen der Inhalt gesetzt werden kann.
Eine Klasse kann eine Klasse und mehrere Interfaces Erben.
Code:
- Public Class Frau :[Klasse],[Interface],[Interface],...{
- }