abstracte variablen??

  • 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??

    Es gibt nur einen Gott:
    Farin - Bela - Rod
    ---------------------------------------
    There are 10 types of people:
    those that understand binary,
    and those that don´t!!!

  • Zitat von tobias


    PS: Geht es dir zufälligerweise um den Speicherplatz der Medien im aktuellen OOP-Beispiel?

    genau um den geht es mir!!

    Es gibt nur einen Gott:
    Farin - Bela - Rod
    ---------------------------------------
    There are 10 types of people:
    those that understand binary,
    and those that don´t!!!

  • 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.

    Zitat

    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.

    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!