abstracte variablen gibt es ja nicht in java.
Wie kann man aber in einer abstracten Klasse eine Variable deklarieren und erzwingen, dass diese Instanzvariable in den abgeleiteten Klassen definiert werden muss??
abstracte variablen??
-
-
Es gibt nur abstrakte Klassen bzw. abstrakte Methoden. Variablen sind doch ohnehin in den abgeleiteten Klassen definiert.
-
Zitat
Wie kann man aber in einer abstracten Klasse eine Variable deklarieren und erzwingen, dass diese Instanzvariable in den abgeleiteten Klassen definiert werden muss??
AFAIK geht das gar nicht.
Mehr dazu: http://forum.java.sun.com/thread.jspa?threadID=482824Tobias
PS: Geht es dir zufälligerweise um den Speicherplatz der Medien im aktuellen OOP-Beispiel?
-
-
Zitat von fuxi17
abstracte variablen gibt es ja nicht in java.
Wie kann man aber in einer abstracten Klasse eine Variable deklarieren und erzwingen, dass diese Instanzvariable in den abgeleiteten Klassen definiert werden muss??Ich kenne zwar Deine Aufgabenstellung nicht, aber abstrakte variablen machen
meiner meinung nach in einem objektorientierten system keinen sinn:Entweder die in den subklassen zu definierende information soll von aussen
zugänglich sein (also als eigenschaft des objekts). Dafür verwendet man in java
aber keine variablen, sondern accessor-methoden
(getEigenschaft()/setEigenschaft()).Oder die information wird nur innerhalb der subklasse verwendet.
Dann hat es aber die basisklasse nicht zu interressieren, wie ihre subklasse
spezifisches verhalten berechnet oder speichert. -
Wir haben einfach in jeder der Klassen für die Medien eine Konstante für den Speicherplatz.
ZitatOder die information wird nur innerhalb der subklasse verwendet.
Dann hat es aber die basisklasse nicht zu interressieren, wie ihre subklasse
spezifisches verhalten berechnet oder speichert.Das stimmt grundsätzlich. In diesem Beispiel geht es um ver. Medien (abstrakte Klasse Medium) die alle einen Speicherplatz haben. Eine einfache Variante wäre, in jeder Implementierungsklasse eines Mediums eine (protected) Konstante dafür zu haben. Das geht natürlich auch ohne abstrakte Variablen, allerdings kann der Compiler diese Überprüfung nicht durchführen, d.h. nicht sicherstellen, dass Mediumklasse.SPEICHERPLATZ (oder wie auch immer man die Konstante nennt) auch definiert ist.
Tobias
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!