/ www.portalsuite.de / Support / Portunity Portalsuite / Handbuch / 9 Einführung in die Portalsuite Objects / 9.1 Allgemeine Kurzeinführung in die OOP


Abstrakte Klassen

Wenn eine Klasse nur noch die Gemeinsamkeiten aller abgeleiteten Klassen enthält und es nicht mehr sinnvoll ist, von dieser Klasse überhaupt noch Objekte zu instanzieren, spricht man von einer abstrakten Klasse.

Nehmen wir einmal weiter an, unsere deutschen Kunden unseres Produktes mit dem Adressobjekt verlangen nun, daß auch das Bundesland mit erfaßt wird. In dem bisherigen Szenario, das die Klasse „AdresseFrance“ von der Klasse „Adresse“ abgeleitet wurde, bringt dies nun ein echtes Problem. Erweitern Sie die Klasse „Adresse“ um das gewünschte Element „Bundesland“ haben auch die französischen Kunden auf einmal ein Element „Bundesland“, obwohl die das gar nicht brauchen, da die ja bereits ihre Provinz haben.

Die Lösung dieses Problems ist die erneute Ableitung der Klasse „Adresse“ zu einer neuen Klasse „AdresseGermany“ und der Ergänzung des Elementes „Bundesland“ sowie ggf. der Anpassung und Überschreibung von geerbten Funktionen.

Die Klasse „Adresse ist in diesem neuen Szenario dann der gemeinsame Vorfahre der beiden Klassen „AdresseFrance“ und „AdresseGermany“. Wenn dieses Szenario weiter ausgebaut wird, daß die Klasse „Adresse“ nur noch die Gemeinsamkeiten aller abgeleiteten Klassen enthält und es nicht mehr sinnvoll ist, von dieser Klasse überhaupt noch Objekte zu instanzieren, spricht man von einer abstrakten Klasse. Der einzige Sinn einer abstrakten Klasse besteht darin, Gemeinsamkeiten von Nachfahren zu deklarieren. Von einer abstrakten Klasse ist es in der Regel nicht sinnvoll, Objekte zu instanzieren.



[zurück] - [bookmarken] - [Druckversion] - [Weiterempfehlen] - [Kontakt] - [Impressum]





Providing unter: http://portunity.net

DSL, ENUM, Hosting, Server,...



unter: enum-center.de