KIO
Kreative Ideen online
Mit IS-A und HAS-A

Mit IS-A und HAS-A

Denken Sie daran, dass, wenn eine Klasse von einer anderen erbt, wir sagen, dass die Unterklasse die Superklasse erweitert. Wenn Sie wissen wollen, ob eine Sache eine andere verlängern sollte, wenden Sie den IS-A-Test an.

IS-A

"Dreieck IS-A-Form" (würde Sinn machen, um eine Superklasse "Form" und Unterklasse "Dreieck" würde Methoden und Instanzvariablen erben)

"Cat IS-A Animal" (würde Sinn machen, um eine Superklasse "Form" und unterklassige "Dreieck" würde Methoden und Instanzvariablen erben)

"Tub erweitert Bad" .. Klingt vernünftig. Bis Sie den IS-A-Test anwenden … "Tub IS-A Bathroom" passt nicht

Macht es Sinn, vom Typ X IS-A Y zu sagen? Wenn da
s nicht der Fall ist, weiß man, dass etwas mit dem Design nicht stimmt.

HAS-A

Wenn wir also den IS-A-Test anwenden, ist Tub IS-A Bad definitiv falsch. Was ist, wenn wir es auf Bad umkehren, erweitert Tub? Das funktioniert immer noch nicht. Tub und Bad sind verwandt, aber nicht durch Erbschaft. Tub und Bad werden durch die HAS-A-Beziehung ergän
zt. Macht es Sinn, "Bad HAS-A Tub" zu sagen?

Wenn ja, dann bedeutet das, dass das Bad eine TuB-Instanzvariable hat. Das heißt, Bathroom hat einen Bezug zu einem Tub, aber Bathroom verlängert TuS nicht und umgekehrt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert