Thread Klassen-Attribut auch in der Base-Klassen nutzen (5 answers)
Opened by Hagen at 2021-04-14 23:15

hlubenow
 2021-04-17 18:03
#193217 #193217
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Vielleicht liegt die Schwierigkeit gerade darin (bin aber nicht sicher, ob das hier wirklich das Problem ist):

Man unterscheidet in der OOP eine "has a"-Beziehung von einer "is a" Beziehung (Beleg, dort anhand von Java).
Das erste besagt, daß es übergeordnete Klassen gibt, in denen untergeordnete Klassen "Member" sind. Hier "hat" die übergeordnete Klasse die untergeordnete und kann darin Methoden aufrufen, die z.B. Werte innerhalb der untergeordneten Klasse verändern. Das wäre aber keine Vererbung. Z.B. in einem Spiel könnte man eine Klasse "Player" haben, und darin ein Objekt der Klasse "Car". "Player" und "Car" stellen verschiedene Dinge dar, und "Player" "has a" "car". (Wobei "car" ein Objekt der Klasse "Car" ist.)

Vererbung wäre das zweite ("is a"). Das ist das, was Linuxer schon beschrieben hatte. Man könnte z.B. eine Basis-Klasse "Fruit" haben, von der dann Klassen "Apple" und "Banana" Methoden und Attribute erben. "Apple" "is a" "Fruit". Hier können in "Apple" die generellen Attribute und Methoden von "Fruit" überschrieben werden. Die allgemeinen von "Fruit", die auch für "Apple" gelten, werden übernommen (geerbt).

Hatte ich (kurz) auch auf meiner Seite beschrieben.

Jetzt ist die Frage, was Du willst. Wolltest Du Vererbung, oder wolltest Du einfach eine Klassenhierarchie?

In einer Klassenhierarchie könnte man z.B. die Attribute nur einmal an die übergeordnete Klasse übergeben, und von dort an die untergeordneten Klassen verteilen, je nachdem, was dort benötigt wird.
Auch die einzelnen Methoden in den untergeordneten Klassen können ja einzelne Argumente annehmen.
Last edited: 2021-04-17 18:35:24 +0200 (CEST)

View full thread Klassen-Attribut auch in der Base-Klassen nutzen