Mam następujący scenariusz:Java: Stosując metodę klasy nadrzędnej dostęp do klasy zmiennej dziecko
public class A {
private int x = 5;
public void print()
{
System.out.println(x);
}
}
public class B extends A {
private int x = 10;
/*public void print()
{
System.out.println(x);
}*/
public static void main(String[] args) {
B b = new B();
b.print();
}
}
Na wykonywanie kodu, wyjście jest: 5.
Jak uzyskać dostęp do klasy dziecięcej (B) zmienna (x) za pomocą metody klasy nadrzędnej?
Czy można to zrobić bez nadpisując metodę print() (to znaczy odkomentuj ją w B)?
[Jest to ważne, ponieważ na nadrzędnych będziemy musieli przepisać cały kod dla wydruku() metody ponownie]
EDITED
więcej wyjaśnień: -
- Motywem pytanie polega na użyciu wartości zmiennej prywatnej klasy potomnej z jej metody klasy nadrzędnej. Nie wymaga to zmiany wartości zmiennej prywatnej klasy macierzystej, aby osiągnąć pożądany wynik.
- Odpowiedzi zamieszczone tutaj doprowadziły mnie jednak do mojej pożądanej odpowiedzi, którą zamieściłem poniżej.
(Dzięki wszystkim za poświęcony czas i pomoc)
Kiedy chcesz wydrukować zmienną B 'x', czy chcesz, aby' x' różniło się od 'X' A, czy powinno być takie samo? –
@WeiHao od kodu jest oczywiste, że 'x' w' A' ma być 5, to w 'B' ma być 10. On chce' B.print() 'wypisać 10, ponieważ nie jest szczęśliwy z wynikiem 5. Tak więc oczekuje, że będą inni. –
@Jayant Nie chodzi o to, że rodzic nie ma informacji, ale nie ma. Problem polega na tym, że wartość 'x' nie jest nadpisywana podczas tworzenia' B'. –