Anwendung der Vererbung in C# am Beispiel "Kfz-Handel"?

1 Antwort

1) Überlege dir zwei bis drei Methoden für die geforderten Klassen und wie sie implementiert werden könnten. Tatsächlich würde ich diese Aufgabe als die Schwierigste bezeichnen, da sie ein wenig Kreativität fordert. Vielleicht hilft dir Brainstorming mit einer Mindmap.

Spontan würde mir der Verbrauch von Treibstoff / Energie beim Fahren einfallen. Eine Methode Drive könnte dafür sorgen, dass sich der Treibstoff verringert. Eine weitere Methode fillUp sorgt für das Wiederauffüllen.

Noch eine andere plumpe Idee wäre die lautmalerische Rückgabe des Tons, den das Fahrzeug beim Fahren macht. Während ein Elektroauto vielleicht schnurrt (zzzz), ist das Motorrad lauter (wroam wroam). 😁

2) Damit eine Klasse von einer anderen Klasse erbt, muss die Basisklasse im Klassenkopf aufgeführt werden.

class Base
{
}

class Sub : Base
{
}

Hier ist es die Klasse Sub, die von Base erbt.

Zusätzlich können aber noch bestimmte Pflichten auf die Subklasse zukommen, denn sobald ein Objekt von Sub angelegt wird, wird beim Konstruktoraufruf auch implizit der Konstruktor der Basisklasse aufgerufen.

Wenn die Basisklasse nun ihren Standardkonstruktor überschreibt:

class Base
{
  public Base(int someValue)
  {
  }
}

hat der Compiler ein Problem. Wenn der Konstruktor nicht mehr parameterlos ist, muss jemand definieren, welche Werte übergeben werden sollen. Die verfügbaren Konstruktoren von Sub müssten das übernehmen.

classs Sub : Base
{
  public Sub() : base(123)
  {
  }
}

Das heißt, der Konstruktor der Basisklasse wird nun nicht mehr implizit, sondern explizit aufgerufen.

Anstatt eines konstanten Wertes könnte man natürlich auch einen Parameter übergeben:

class Sub : Base
{
  public Sub(int someValue) : base(someValue)
  {
  }
}

Ein komplettes Kapitel über Vererbung findest du hier. Mein Text war nur ein sehr kurzer technischer Anschnitt, wie man die Verbindung herstellt.