Ho il seguente scenario:Java: Usando il metodo classe padre per accedere classe figlia variabile
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();
}
}
Sulla eseguire il codice, l'output è: 5.
Come accedere alla classe figlia (B del) variabile (x) tramite il metodo della classe genitore?
È possibile eseguire senza ignorando il metodo print() (cioè decommentandolo in B)?
[Questo è importante perché sulla sostituzione dovremo riscrivere l'intero codice per la stampa() il metodo di nuovo]
a cura
maggiori chiarimenti: -
- Il movente della domanda è di usare il valore di una variabile privata di classe figlio dal suo metodo di classe genitore. Ciò non richiede la modifica del valore della variabile privata della classe genitrice al fine di ottenere il risultato desiderato.
- Le risposte pubblicate qui, tuttavia, mi hanno portato alla mia risposta desiderata, che ho postato di seguito.
(Grazie a tutti per il vostro tempo e aiuto)
Quando si desidera stampare la variabile di B 'x', si intende che' x' sia diverso da A 'x', o dovrebbero essere uguali? –
@WeiHao dal codice è ovvio che 'x' in' A' deve essere 5, quello in 'B' deve essere 10. Vuole' B.print() 'per l'output 10, perché non è felice con un'uscita di 5. Quindi si aspetta che siano diversi. –
@Jayant Non si tratta del genitore che non ha informazioni, non lo fa. il problema è che il valore di 'x' non viene sovrascritto durante la creazione di' B'. –