Fall unterscheidung bei Vererbung



  • Hall Leute,

    kurze Frage ... Gibt es eine Möglichkeit Fallunterscheidungen bei vererbuingen zu treffen?

    Angenommen ich Erbe von Vier Klassen. Ich möchhte allerding entwedern von Klasse 1 und 3 oder von Klasse 2 und 4 erben. Ist das Möglich?

    Gibt es in UML eine entsprechende Notation oder muss ich erstmal alle Klassen mit der abgeleitete Klassen verbinden?

    Danke im Vorraus
    Peter L.



  • Mit UML kenne ich mich nicht aus, aber natürlich kannst Du statt von 4 Klassen auch nur von zwei Klassen (1 und 3 oder 2 und 4) erben.
    Du kannst sogar von keiner Klasse erben, oder auch von einer ...



  • Belli schrieb:

    Mit UML kenne ich mich nicht aus, aber natürlich kannst Du statt von 4 Klassen auch nur von zwei Klassen (1 und 3 oder 2 und 4) erben.
    Du kannst sogar von keiner Klasse erben, oder auch von einer ...

    Edit:
    Allerdings nicht in C 😞



  • Vielen Dank,

    Belli schrieb:

    Belli schrieb:

    Mit UML kenne ich mich nicht aus, aber natürlich kannst Du statt von 4 Klassen auch nur von zwei Klassen (1 und 3 oder 2 und 4) erben.
    Du kannst sogar von keiner Klasse erben, oder auch von einer ...

    Edit:
    Allerdings nicht in C 😞

    Das macht nichts, ich wollte es eigentlich auch in CPP Posten. Vielen dank für die Anwort, Belli 🙂

    Ich bitte die Moderatoren um Verschiebung 😃



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (alle ISO-Standards) in das Forum C++ (alle ISO-Standards) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Meinst Du zur Laufzeit? Das wird nicht funktionieren!



  • Wieso denn nicht?
    Man erstellt die erforderlichen Klassen, zB. eine, die von Klasse 1 - 4 erbt, eine, die von 1 und 3 erbt, und eine, die von 2 und 4 erbt, und entscheidet zur Laufzeit, welche man instanziiert ...


  • Mod

    Belli schrieb:

    Wieso denn nicht?
    Man erstellt die erforderlichen Klassen, zB. eine, die von Klasse 1 - 4 erbt, eine, die von 1 und 3 erbt, und eine, die von 2 und 4 erbt, und entscheidet zur Laufzeit, welche man instanziiert ...

    Das ist halt etwas anderes, als zur Laufzeit die Abstammung einer Klasse zu ändern. In diesem Sinne Frage an den Threadersteller: Das was du beschreibst, gibt es wortwörtlich genommen so nicht. Es gibt aber sehr viele Sachen, die sehr ähnlich sind. Daher wäre es besser, wenn du beschreibst, welches Verhalten des Programms du dir warum wünscht.



  • vllt hilft abstrakte klasse



  • hmm ich beschreib es mal am besten so....
    es soll eine Basisklasse geben MANN
    es soll eine weitere Basisklasse geben FRAU

    es gibt eine dritte Klasse Kind mit eigenen Attributen

    Jetz kann das Kind ein Junge sein, dass erbt das KIND von MANN.
    Das Kind kann aber auch eine Mädchen sein, dann erbt KIND von FRAU.

    Ob es sich aber um ein Mädchen oder Jungen handelt, soll während der Laufzeit festgelegt werden. Durchaus kann vom Nutzer eine Eingabe abverlangt werden, sodass eine if anweisung verbaut werden kann. Aber wie kann ich unterscheiden wann die Klasse KIND von welcher Klasse erbt?

    Ich hoffe mein Problem ist deutlich geworden. 🙂



  • pluxyy schrieb:

    hmm ich beschreib es mal am besten so....
    es soll eine Basisklasse geben MANN
    es soll eine weitere Basisklasse geben FRAU

    es gibt eine dritte Klasse Kind mit eigenen Attributen

    Jetz kann das Kind ein Junge sein, dass erbt das KIND von MANN.
    Das Kind kann aber auch eine Mädchen sein, dann erbt KIND von FRAU.

    Ob es sich aber um ein Mädchen oder Jungen handelt, soll während der Laufzeit festgelegt werden. Durchaus kann vom Nutzer eine Eingabe abverlangt werden, sodass eine if anweisung verbaut werden kann. Aber wie kann ich unterscheiden wann die Klasse KIND von welcher Klasse erbt?

    Ich hoffe mein Problem ist deutlich geworden. 🙂

    Absolut. Du lernst gerade mit einem Buch von Jürgen Wolf.

    Evtl Interfaces Kindlich, Dämlich und Herrlich.
    Junge:Herrlich,Kindlich.
    Mädchen:Dämlich,Kindlich.
    Herr:Herrlich.
    Dame:Dämlich.

    Aber auf jeden Fall müssen die vier Klassen zur Compilezeit feststehen und man kann sich zur Laufzeit keine eigenen Klassen oder Vererbungen mehr backen.

    Und Paul ist bloß ein Objekt der Klasse Junge und keine eigene Klasse! Daher stellt sich gar nicht die Frage, von was Paul erbt.



  • Während der Laufzeit, nicht während der Konstruktion?? Also Geschlechtsumwandlung. Da hilft dann ein Attribut geschlecht mit den Enumerationswerten mann bzw. frau, und eine setter-Methode dafür.


Log in to reply