Unterklassen auf gemeinsame Oberklasse zugreifen

Status
Nicht offen für weitere Antworten.

Elephant

Aktives Mitglied
Hallo,

meine Frage ist, ob es irgendwie die Möglichkeit gibt, dass 2 Klassen die von der gleichen Oberklasse erben auf die gleichen Variablen zugreifen können. Also ich versuchs mal so zu erklären, dass mans versteht.

Wenn ich z.B. eine Oberklasse FileManipulation habe und zwei Unterklassen FilePatternExtractor u. FilePatternInserter, die davon erben.

Jetzt wäre es gut, wenn man z.B. eine Datei nur einmal einlesen könnte, sie in einem Object der Oberklasse speichern könnte und beide Unterklassen-Objekte könnten darauf zugreifen und jeweils etwas anderes mit der Datei machen. Dann bräuchte man z.B. die Datei nur einmal einlesen. Da man ja aber (jedenfalls glaube ich, dass das so ist) zwei unterschiedliche Objekte der Unterklassen erstellt haben diese ja keine gemeinsamen Variablen.

Bei so einem kleinen Beispiel könnte man ja einfach sagen man liest die Datei extra ein und übergibt sie dann jeweils, aber ich hab mir gedacht, dass bei komplexeren Sachen, die gemeinsam genutzt werden können, das einfacher wäre irgendwie gemeinsam darauf zugreifen zu können.

Wahrscheinlich ist es eine blöde Idee, aber ich wollte mal fragen ob vielleicht jemand was dazu sagen kann/will.
 
B

Beni

Gast
Man könnte mit "static" was machen. Dann gibt es gewisse Variablen allerdings nur ein einziges mal im Programm... nicht unbedingt erweiterungsfreundlich...

Ich würde Referenzen verwenden, Vererbung ist nicht immer eine brauchbare Lösung :wink:
 

Elephant

Aktives Mitglied
Mit static hatte ich mir auch schon überlegt, aber auch vorworfen, weil das nicht wirklich hilft.

Bei Referenzen ist es halt nicht mehr so schön 'gekapselt' irgendwie. Deshalb dachte ich nur es gibt da vielleicht irgendwie so etwas.
 

byte

Top Contributor
Bei der Vererbung geht es ja darum, ein Verhalten zu vererben, also das was in der Oberklasse definiert ist und nicht den Zustand eines Objekts. Du hättest sonst ja auch gar nix gewonnen, denn Du müsstest dann ja erst ein Objekt der Oberklasse instanzieren bevor Du die beiden davon erbenden Klassen instanzieren könntest.
 

Elephant

Aktives Mitglied
Ja, das mit der Vererbung stimmt.

Ich fänds trotzdem schön, wenn es so etwas gebe. :) Momentan habe ich eine Klasse, die die gemeinsamen Variablen etc. hält und dazu jeweils ein Objekt der 'Unterklasse' und dann die gemeinsam genutzten Objekte an die ensprechende Unterklasse weiterreicht.
 

AlArenal

Top Contributor
Warum sollte eine Klasse zur Manipulation einer Datei selbst Dateien in irgendeiner Form cachen? Das Vorhalten von Dateien ist kein Bestandteil der Manipulation, gehört demnach auch nicht in den Aufgabenbereich der Klasse...

=> Zurück ans Reißbrett! ;)
 

Elephant

Aktives Mitglied
Entschuldigung dass ich nochmal nachfrage.

Denkst Du also, eine Klasse, die in irgendeiner Weise eine Datei manipuliert, z.B. Wörter ersetzt, sollte nie selber die Methoden enthalten zum Auslesen der Datei und die Datei auch als Variable speichern?
 

AlArenal

Top Contributor
Ich versuche in der Regel so gut ich kann Abhängigkeiten zu vermeiden. Aktuell schreibst du was um z.B. Wörter in Dateien zu ersetzen. Später magst du vielleicht mal Wörter in anderen Daten suchen und ersetzen müssen.

Warum solltest du die Klasse so schreiben, dass die das nur für Dateien kann? Designe ihr Interface so, dass sie mit einem String und / oder einem Stream umgehen kann. Damit ist die Klasse deutlich variabler einsetzbar, ohne etwas an ihr ändern zu müssen, einfach indem du unnötige Abhängigkeiten entfernt hast.

Ob du den String oder Stream dann vom User eingegeben wurde, aus ner Datei oder nem Netzwerk-Socket kommt - der Klasse isses peng!

Oder aber du implementierst erstmal alles in einer Klasse und leitest von dieser dann Unterklassen ab, die spezialisiert sind auf Dateien, ...
 

Elephant

Aktives Mitglied
Also ich hab das meistens so gemacht, dass man der Klasse, die z.B. Wörter ersetzt, auch einen InputStream übergeben kann oder eine File-Objekt oder einen String als Pfadname und sie innerhalb Methoden hat, die aus dem String und File dann einen InputStream 'machen' und so trotzdem die Datei innerhalb eingelesen wird.

Ich dachte dabei daran, dass man ja sonst wieder erst in einer anderen Klasse z.B. die Datei auslesen muss so erzeugt man einfach das 'Manipulations-Klassen-Objekt' und übergibt, was man gerade hat.

Das Problem ist daran aber wirklich, dass man, wenn man irgendwie eine 'neue Art' hat, eine entsprechende Methode in der Manipulations-Klasse einfügen muss.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Reflection: Suche Feld + in Unterklassen Java Basics - Anfänger-Themen 7
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
S getter, setter in abstrakter Klasse oder lieber Unterklassen Java Basics - Anfänger-Themen 4
K Vererbung Auf Methoden von Unterklassen zugreifen Java Basics - Anfänger-Themen 6
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
J Oberklassen / Unterklassen Referenzverwendbarkeiten Java Basics - Anfänger-Themen 3
A Vererbung Oberklassen und Unterklassen Java Basics - Anfänger-Themen 4
S Vererbung Objekte von Ober - und Unterklassen zählen Java Basics - Anfänger-Themen 3
C Super und Unterklassen Java Basics - Anfänger-Themen 6
K Vererbung protected NUR für Unterklassen? Java Basics - Anfänger-Themen 17
L Objekte zählen mehrerer Unterklassen Java Basics - Anfänger-Themen 3
B Unterklassen von Exeptions müssen importiert werden ? Java Basics - Anfänger-Themen 3
J Klassen, Unterklassen, Vererbung - Compilerfehler Java Basics - Anfänger-Themen 11
M Unterklassen mit unterschiedlicher Zustandsanzahl Java Basics - Anfänger-Themen 15
F Oberklassen und Unterklassen, Arrayzugriff Java Basics - Anfänger-Themen 4
M Unterklassen Java Basics - Anfänger-Themen 5
B Unterklassen, Packages Java Basics - Anfänger-Themen 3
G abstracte Klassen und deren Unterklassen Java Basics - Anfänger-Themen 10
T Konstruktor bei Unterklassen? Java Basics - Anfänger-Themen 4
G Klassen und Unterklassen Fragen Java Basics - Anfänger-Themen 18
E Zugriff auf unterklassen! Java Basics - Anfänger-Themen 8
E ober und Unterklassen Java Basics - Anfänger-Themen 2
J Cast zwischen zwei Unterklassen der selben Oberklasse. Java Basics - Anfänger-Themen 7
G Unterklassen finden Java Basics - Anfänger-Themen 2
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
H Gemeinsame Schnittmenge zweier Arrays ausgeben Java Basics - Anfänger-Themen 12
S Gemeinsame Ressource und Mehrfachinstanziierung von Threads Java Basics - Anfänger-Themen 16
I gemeinsame Config-Datei für alle Windows-User Java Basics - Anfänger-Themen 5
T gemeinsame Methode für ArrayList vererbter Objekte Java Basics - Anfänger-Themen 6
M Gemeinsame Objekte in LinkedList Java Basics - Anfänger-Themen 10
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
T Benutzen des Bezeichners der Oberklasse Java Basics - Anfänger-Themen 4
O Mit Instanz von Oberklasse auf Unterklasse zugreifen Java Basics - Anfänger-Themen 2
C Zugriff auf Attribut von Oberklasse Java Basics - Anfänger-Themen 8
NightmareVirus überschriebene Methode der Oberklasse verwenden Java Basics - Anfänger-Themen 3
D Bei Objekt der Oberklasse auf Unterklassenmethode zugreifen? Java Basics - Anfänger-Themen 4
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
T unterklasse will eine methode von der oberklasse nutzen Java Basics - Anfänger-Themen 4
V Frage zu Polymorphismus: Objekt der Subklasse in Referenz der Oberklasse Java Basics - Anfänger-Themen 4
X Stack mit Oberklasse, wieso funktioniert es nicht? Java Basics - Anfänger-Themen 8
L Vererbung Attributen der Oberklasse Attribute hinzufügen? Java Basics - Anfänger-Themen 3
D Methode zur Konvertierung von Oberklasse in Unterklasse Java Basics - Anfänger-Themen 5
A Polymorphie Unterklasse Objekt in Oberklasse Variable? Java Basics - Anfänger-Themen 3
N Mit Kontrukor der Oberklasse lokale Variable initialisieren Java Basics - Anfänger-Themen 2
A Oberklasse Problem mit gibAktuelleFigur Java Basics - Anfänger-Themen 9
J Oberklasse Objekt = new Unterklasse() Java Basics - Anfänger-Themen 5
D Casten eines Objekts: Funktion der Oberklasse aufrufen Java Basics - Anfänger-Themen 4
E Zugriff aus einer Runnable auf die Oberklasse Java Basics - Anfänger-Themen 2
O Oberklasse übergeben, überprüfen nach unterklasse Java Basics - Anfänger-Themen 3
J Konstruktor der Unterklasse auf Objekt der Oberklasse Java Basics - Anfänger-Themen 3
G Konstruktor der Unterklasse auf Objekt der Oberklasse Java Basics - Anfänger-Themen 1
G Frage zu Oberklasse bei Methodenaufruf Java Basics - Anfänger-Themen 2
J Konstruktor der Oberklasse und super Java Basics - Anfänger-Themen 1
N "(Oberklasse as Unterklasse).UnterklassenVariable" Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben