Announcement

Collapse
No announcement yet.

Abstrakte Klassen/Methoden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abstrakte Klassen/Methoden

    Halllo,

    ich habe folgendes Problem das ich jetzt mal auf einfache weise erklären will:

    ich habe eine Abstrakte Klasse Auto mit Abstrackten methoden z.b. motorAn();

    Jetzt will ich 3 Klassen von der abstrakten Klasse Auto erben lassen

    z.b. KLassen: VW, BMW, Audi

    die Klassen sollen alle die Methode motorAn(); haben.

    Aber jede Klasse übergibt der Metode motorAn(); einen anderen Argumenten-Typ z.b. VW: motorAn(int start);
    BMW: motorAn(string start);
    AUDI: motorAn(bool start);


    wie lässt sich das realiesieren?

  • #2
    Wenn es einen sinnvollen Zusammenhang zwischen dem übergeben Typen an die motorAn Methode (Methoden großschreiben das hier ist C# und nicht Java) und der konreten Klasse gibt könntest du über eine generische abstrakte Basisklasse nachdenken.

    Allgemein würde ich aber sagen das das was du vorhast, zumindest in diesem Beispiel, keinen Sinn macht (wenn es denn ginge was es nicht tut denn man muss das beschrieben Interface schon genau erfüllen). Abstrakte Basisklassen oder Interfaces machen dann Sinn wenn man auch im Code gegen diese Programmieren kann ohne die konkreten Klassen zu kennen. In deiner Konstellation ist das aber nicht möglich da die Methode nur dann aufrufbar ist wenn man die konkrete Klasse kennt und damit dann weiß welcher Typ den übergeben werden muss.

    Also entweder besseres Beispiel oder Idee streichen.

    Comment


    • #3
      grundsätzlich gebe ich Ralf Jansen recht.



      Von abstrakten Klassen kann nur geerbt werden.
      Von der abstrakten Klasse abgeleitete Klassen müssen alle abstrakten Methoden implementieren.

      Also ist es notwendig bereits in der abstrakten Klasse jede Methodensignatur vorzugeben.

      motorAn();
      motorAn(string s);
      motorAn(int i);
      motorAn(bool b);

      Comment

      Working...
      X