class Parent
{ //need to access variable of child class
}
class Child extends Parent
{ int a=10;
}
-4
A
Antwort
0
Sie müssten etwas über das Kind wissen - entweder durch Design oder Entdeckung durch Reflexion.
Dieses Beispiel hängt davon ab, ob "a" "Paket" oder "öffentlich" und nicht "privat" ist.
0
Wenn Sie wirklich müssen, was Sie tun müssen, ist versuchen, das Feld mit Reflexion zu bekommen und die Möglichkeit zu finden, dass das Feld nicht gefunden wird. Versuchen Sie so etwas wie:
static class Parent
{
public int getChildA(){
try {
Class clazz = Child.class;
Field f = clazz.getDeclaredField("a");
if(!f.isAccessible())
f.setAccessible(true);
return f.getInt(this);
} catch (NoSuchFieldException ex) {
//the parent is not an instance of the child
} catch (SecurityException | IllegalArgumentException | IllegalAccessException ex) {
Logger.getLogger(SOtests.class.getName()).log(Level.SEVERE, null, ex);
}
return -1;
}
}
static class Child extends Parent
{
int a=10;
}
public static void main(String[] args) {
Child c = new Child();
Parent p = (Parent) c;
System.out.println(p.getChildA());
}
die Ausgabe 10
, aber dies noch von einem Design-Interessenten eine wirklich schlechte Idee ist. Ich musste auch die Klassen für die Demo machen, aber Sie können sie ohne Probleme zurück ändern.
Verwandte Themen
- 1. Zugriff auf Kindklasse-Prototyp aus der Elternklasse
- 2. Verwenden einer Methode der Elternklasse mit der Variablen der Kindklasse ohne Überschreiben
- 3. Python-Elternklasse, die auf Klassenvariable der Kindklasse zugreift
- 4. Ist es möglich, auf den Elternknoten innerhalb der Schleife zuzugreifen?
- 5. Vererbung - Arrays der Elternklasse und Arrays der Kindklasse - Casting
- 6. Warum erbt meine Kindklasse nicht alle Methoden von der Elternklasse?
- 7. Ist es möglich, in iOS auf den Gerätecontainer zuzugreifen?
- 8. Ist es möglich, von außerhalb der Funktion auf eine lokale Variable der Funktion zuzugreifen?
- 9. Ist es möglich, auf 32-Bit-Register in C zuzugreifen?
- 10. Ist es möglich, auf iPhone Notizen, Kalender in IOS zuzugreifen?
- 11. Ist es möglich, während der Laufzeit auf Informationen vom Typ Java 8 zuzugreifen?
- 12. Ist es möglich, mit nur der Standard-Java-Bibliothek auf die XMP-Metadaten eines PDFs zuzugreifen?
- 13. Java Vererbung Einstellung Wert in der Elternklasse
- 14. Ist es möglich, auf die Variablen in __init__.py von den Modulen im selben Paket zuzugreifen?
- 15. Ist es möglich, auf Android auf das Lautsprechersignal zuzugreifen?
- 16. Java-Inline-Klassenaufrufmethode in der Elternklasse
- 17. Was sind die Voraussetzungen, um eine Initialisierung der Elternklasse in der Kindklasse zu verursachen?
- 18. wie Wert der Elternklasse konstant aus der Seite der Klasse zuzugreifen Kind mit Klasse
- 19. C# generischer Typ Argument aus der Kindklasse, möglich?
- 20. Wie Methode der zweiten Elternklasse mit Methode der Kindklasse in Python aufrufen?
- 21. Flex: Schaltflächen in Datagrid, ist es möglich, auf Eigenschaften der Spalte zuzugreifen
- 22. Ist es möglich, auf Eigenschaften und Funktionen von userdata zuzugreifen?
- 23. Ist es möglich, auf GAE-Datenspeicher ohne HTTP-Anforderung zuzugreifen?
- 24. Ist es möglich mit Tag auf UIAlertView zuzugreifen?
- 25. Ist es möglich, direkt von GPU auf die Festplatte zuzugreifen?
- 26. Wie ist es möglich, auf Speicher anderer Prozesse zuzugreifen?
- 27. Ist es möglich, explizit auf Instanzelemente der Klasse einer geschachtelten Klasse zuzugreifen?
- 28. Ist es möglich, durch Reflexion in Java 9 mit Jigsaw auf paketorientierte Methoden zuzugreifen?
- 29. Ist es in Java möglich, über Reflektion auf private Felder zuzugreifen
- 30. Wie ist es möglich, getContext() in Aktivität
nein. Dies ist ohne viel Nachdenken und generell keine schlechte Idee möglich. – Dallen
Der Elternteil sollte niemals eine Abhängigkeit oder gar Kenntnis von Kindklassen haben. Zeitraum. –
Dies ist ein deutlicher Hinweis darauf, dass Ihr Design falsch ist. – bradimus