In Subklasse auf private Variablen zugreifen

Status
Nicht offen für weitere Antworten.

Salamanda

Mitglied
Hallo,

nehmen wir an, wir erstellen eine Subklasse von einer Klasse. Also z.B.:
Code:
public class Subclass extends Superclass

In dieser Subklasse soll eine Methode aus der 'Superclass' überschrieben werden.

In der überschriebenen Methode soll jetzt sozusagen zwischendrin im Original Code was geändert werden.
Deswegen hilft es hier nicht, per 'super.methodenName()' die alte Methode zuerst aufzurufen, und dann den neuen Code anzufügen.

Man muss also den den ganzen Original Code von der Methode kopieren, und in die überschriebene Methode einfügen, und dort dann die Änderungen machen.

Soweit eigentlich auch erstmal kein Problem. Jetzt aber zum Problem.
In diesem Code wird auch auf private Variablen und Funktionen zugegriffen. Auf diese hat die Subklasse keinen Zugriff.
Ist somit also erstmal nicht machbar.

Eine Möglichkeit wäre jetzt, in der 'Superclass' diese Variablen und Funktionen z.b. auf protected zu setzen. Aber das sieht sehr nach einer unsauberen Lösung aus.

Wir gehen jetzt auch mal davon aus, das die 'Superclass' nicht eine selber erstellte Klasse ist, wo man solch eine Änderung noch in Kauf nehmen könnte, sondern das dies z.B. eine Klasse aus der Java Bibliothek ist, die man verändern möchte. Da will man ja ungern was an der Original Klasse rumfummeln.

Was gibt es da sonst noch für Möglichkeiten?
 
B

Beni

Gast
Wenn man die Klasse selbst ändern kann, macht man am einfachsten ein paar getter/setter-Methoden (die können public oder protected sein).

Falls die Klasse von einer Bibliothek kommt:
- könnte man Reflection benutzen, das ist langsam und unsicher.
- könnte man einen anderen Weg suchen, der aber vom konkreten Problem (Wink mit dem Zaunpfahl :wink: ) abhängt.
 

Salamanda

Mitglied
Beni hat gesagt.:
- könnte man einen anderen Weg suchen, der aber vom konkreten Problem (Wink mit dem Zaunpfahl :wink: ) abhängt.

Schwierig. Im konkreten Fall geht es gar nicht um Java, sondern Actionscript-3 :wink:
Dort konnte mir aber keiner helfen, deswegen habe ich es hier versucht, weil ich dachte, das es eher ein allgemeines Problem von OOP ist, unabhängig der Sprache.
 

Wildcard

Top Contributor
weil ich dachte, das es eher ein allgemeines Problem von OOP ist, unabhängig der Sprache.
Von der OOP Sicht her, will die Klasse dieses Implementierungsdetail nicht nach aussen veröffentlichen und verbietet das von dir gewünschte daher.
Demzufolge ist es also kein OOP Problem, sondern ein 'Feature' :wink:
 

Salamanda

Mitglied
Wildcard hat gesagt.:
Von der OOP Sicht her, will die Klasse dieses Implementierungsdetail nicht nach aussen veröffentlichen und verbietet das von dir gewünschte daher.
Demzufolge ist es also kein OOP Problem, sondern ein 'Feature' :wink:

Stimmt, hast auch wieder recht :)

Das ärgerliche hier ist, das die eigentliche Änderung gar nicht diese privaten Variablen u. Funktionen betrifft.
Also die Änderungen wären sozusagen erlaubt. Nur muss ich zwangsläufig auch den restlichen Code, der nicht verändert wird, hinzufügen, und dort kommen diese privaten Variablen usw. vor.

Naja, konnte es in diesem Fall zum Glück nochmal irgendwie anders gelöst bekommen. Wäre aber schöner gewesen das über eine Subklasse gelöst zu haben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Reflection mit Klasse und Subklasse Allgemeine Java-Themen 11
D Vererbung Wie auf Subklasse zugreifen + übergeben? Allgemeine Java-Themen 5
J Verbindungsdaten an Subklasse übergeben? Allgemeine Java-Themen 5
F Dynamisch ein Objekt einer bestimmten Subklasse erstellen Allgemeine Java-Themen 7
A Annotation einer Subklasse im static-Block auslesen. Allgemeine Java-Themen 6
A Aus Superklasse Methode aus aufrufender Subklasse starten Allgemeine Java-Themen 7
M NullPointerException bei Subklasse ohne MediaTracker Allgemeine Java-Themen 12
temi Private statische Hilfsmethoden Allgemeine Java-Themen 33
G Public oder Private oder Protected Sinn Allgemeine Java-Themen 14
J private and arrays Allgemeine Java-Themen 2
Thallius Warum ist meine private porperty public? Allgemeine Java-Themen 7
J private static final String variable Allgemeine Java-Themen 8
Thallius Wie verstecke ich meinen private Key am besten im Code? Allgemeine Java-Themen 10
N Vererbung Static & private fields - Nicht ganz einfach? Allgemeine Java-Themen 4
L Private Key aus KeyDatei extrahieren Allgemeine Java-Themen 2
C Probleme mit dem Zugriff auf private Methode per reflection Allgemeine Java-Themen 2
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
G Testcases mit Junit auf private-Methode Allgemeine Java-Themen 7
S private ignorieren Allgemeine Java-Themen 7
Z aus private List<???> list eintrag löschen Allgemeine Java-Themen 4
P Private und public Allgemeine Java-Themen 2
tfa Unit-Tests für private Methoden Allgemeine Java-Themen 25
A Private-Wert eines Objekts auslesen Allgemeine Java-Themen 9
F Javadoc: @value tag nicht für private fields? Allgemeine Java-Themen 11
G per Reflection auf private Klassenattribute zugreifen? Allgemeine Java-Themen 9
M per reflection private attributsnamen auslesen Allgemeine Java-Themen 3
reibi Aufruf eines private Konstruktors Allgemeine Java-Themen 7
J Java Private Edition? Allgemeine Java-Themen 7
M Stärkerer access-modifier als "private"? Allgemeine Java-Themen 17
F Ein interface und private Methoden? Allgemeine Java-Themen 13
S private Vars in abstrakter Klasse nicht in der Unterklasse? Allgemeine Java-Themen 6
S private Instanzvaribalen bei "Innerer-Vererbung" Allgemeine Java-Themen 9
T ungewollter Zugriff auf private Variablen? Allgemeine Java-Themen 3
S private Methoden benutzen Allgemeine Java-Themen 11
G private vs. public JRE Allgemeine Java-Themen 3
C Erste Schritte Variablen in abhängigkeit von Git branch Allgemeine Java-Themen 7
Fabiator Variablen Variablen Zählen Allgemeine Java-Themen 3
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
berserkerdq2 Labels in IJVM sind keine lokalen Variablen oder? Allgemeine Java-Themen 2
O Fehler bei Variablen Allgemeine Java-Themen 2
N File Path mit Variablen angeben Allgemeine Java-Themen 1
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
R Geometry erstellen die abhängig von Variablen ist Allgemeine Java-Themen 6
O Formatierte String ausgabe bei vier Variablen in einer Zeile Allgemeine Java-Themen 1
P static Blocks und variablen Allgemeine Java-Themen 41
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
V Datentypen Graphikrechner 2/Strings und Variablen in Doubles umwandeln Allgemeine Java-Themen 6
S Kann man Variablen oder Felder definieren deren Typ zwei Interfaces ist..? Allgemeine Java-Themen 9
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
D BlueJ, Variablen die mehrfach vorkommen gleichzeitig umbenennen Allgemeine Java-Themen 3
C Variablen Variablen mit unendlichem Wert Allgemeine Java-Themen 22
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
T Maximale Felder maximale Variablen Allgemeine Java-Themen 2
W Lebendige Variablen herauslesen Allgemeine Java-Themen 1
K Summierung einer Variablen Allgemeine Java-Themen 5
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
X Threads Externe Variablen in Run Methoden verändern Allgemeine Java-Themen 4
Messoras Klassen Sämtliche Variablen einer Klasse übernehmen Allgemeine Java-Themen 6
K Static Variablen verbieten Allgemeine Java-Themen 10
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
A Best Practice Variablen vertauschen - Performance Allgemeine Java-Themen 1
F Variablen Variablen schachteln Allgemeine Java-Themen 6
7 6 int variablen vergleichen Allgemeine Java-Themen 34
C Threads Variablen in einem Thread Aktualisieren Allgemeine Java-Themen 17
M Variablen Variablen in Text einbinden Allgemeine Java-Themen 5
K Überschreiben von Variablen bei rekursivem Funktionsaufruf Allgemeine Java-Themen 2
R Übergreifende Variablen? Allgemeine Java-Themen 10
OnDemand Input/Output Variablen in Datei Speichern um sie wieder auszulesen Allgemeine Java-Themen 4
D Variablen zur Laufzeit global speichern (Registry Pattern?) Allgemeine Java-Themen 6
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
D ClassLoader für Variablen einer Klasse setzen Allgemeine Java-Themen 24
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
D Alle Variablen final setzen ? Allgemeine Java-Themen 26
C Kapselung Warum graift man auf Variablen nur über Methoden und nich direkt zu? Allgemeine Java-Themen 10
C Classloading und statische Variablen Allgemeine Java-Themen 2
K Variablen speichern Allgemeine Java-Themen 2
S Variablen bei Aufruf zurücksetzen Allgemeine Java-Themen 4
faetzminator statische Variablen in Interface - Vererbung? Allgemeine Java-Themen 9
V Gibt es einen Variablen Cast? Allgemeine Java-Themen 8
K Mehrere JVMs die auf eine Klasse mit statischen Variablen zugreift Allgemeine Java-Themen 19
D Wann sollte ich statische Methoden und Variablen benutzen? Allgemeine Java-Themen 44
M Generische Methoden mit Java und globale Variablen Allgemeine Java-Themen 9
J Statische Variablen, Threadübergreifend. Allgemeine Java-Themen 4
E Variablen anderer Klassen auslesen (nur Name bekannt) Allgemeine Java-Themen 4
P Variablen in einer anderen Klasse auf Änderungen überwachen Allgemeine Java-Themen 12
V Typargument einer Variablen erfragen Allgemeine Java-Themen 4
B Rechnen mit mehreren Variablen Allgemeine Java-Themen 2
G Thread variablen Sichtbarkeit Allgemeine Java-Themen 15
J Java Pfad nicht mehr in Path Variablen??? Allgemeine Java-Themen 2
T Mit JNI finale Variablen überschreiben Allgemeine Java-Themen 14
T JNI -> auf Java-Variablen etc zugreifen Allgemeine Java-Themen 6
M Bezeichnung für Component-Variablen Allgemeine Java-Themen 6
M Variablen an Java-Programm übergeben Allgemeine Java-Themen 3
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
A Überschreibung von Variablen Allgemeine Java-Themen 3
A JavaCC: Variablen zaehlen Allgemeine Java-Themen 12
B globale und lokale Variablen Allgemeine Java-Themen 17
G referenz von variablen Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben