Hallo zusammen!
Das Thema ist sogar etwas allgemeiner, als eine "allgemeines Java-Thema" -- es geht um das Überschreiben / die Implementierung von Methoden generell.
Es gibt zunächst zwei Klassen ClassA und ClassB (ClassB erbt von ClassA). Weiterhin gibt es zwei andere Klassen ClassX und ClassY (ClassY erbt von ClassX). Die Klasse ClassA ist abstrakt und definiert eine abstrakte Methode method(ClassX objectX). Die Klasse ClassB muss sie implementieren. Also, eigentlich überschreiben: method(ClassX objectX).
Das Problem ist, dass die Methode method(...) der konkreten implementierenden Klasse ClassB eigentich nicht ein Objekt vom Typ ClassX, sondern nur eins vom Typ ClassY sinnvoll verarbeiten kann.
Beispliel:
ClassX ist eine allgemeine Tabellenklasse.
ClassY ist eine Klasse, die eine konkrete Tabelle "bücher" darstellt und dementsprechend Zugriffsmethoden für die spezifischen Attribute "titel", "autor" und "anzahlSeiten" hat.
ClassZ (extends ClassX) ist eine Klasse, die eine konkrete Tabelle "räume" darstellt und dementsprechend Zugriffsmethoden für die spezifischen Attribute "raumNr", und "gebäude" hat.
Wie würdet Ihr das Problem lösen?
Danke
Das Thema ist sogar etwas allgemeiner, als eine "allgemeines Java-Thema" -- es geht um das Überschreiben / die Implementierung von Methoden generell.
Es gibt zunächst zwei Klassen ClassA und ClassB (ClassB erbt von ClassA). Weiterhin gibt es zwei andere Klassen ClassX und ClassY (ClassY erbt von ClassX). Die Klasse ClassA ist abstrakt und definiert eine abstrakte Methode method(ClassX objectX). Die Klasse ClassB muss sie implementieren. Also, eigentlich überschreiben: method(ClassX objectX).
Das Problem ist, dass die Methode method(...) der konkreten implementierenden Klasse ClassB eigentich nicht ein Objekt vom Typ ClassX, sondern nur eins vom Typ ClassY sinnvoll verarbeiten kann.
Beispliel:
ClassX ist eine allgemeine Tabellenklasse.
ClassY ist eine Klasse, die eine konkrete Tabelle "bücher" darstellt und dementsprechend Zugriffsmethoden für die spezifischen Attribute "titel", "autor" und "anzahlSeiten" hat.
ClassZ (extends ClassX) ist eine Klasse, die eine konkrete Tabelle "räume" darstellt und dementsprechend Zugriffsmethoden für die spezifischen Attribute "raumNr", und "gebäude" hat.
Wie würdet Ihr das Problem lösen?
Danke