У меня есть объект подкласса. Могу ли я получить доступ к скрытой переменной суперкласса без использования ключевого слова super. ?? Фактически, я нашел технику. Ее работа, но я не понимаю концептуальной причины этого.объект подкласса, доступ к скрытой переменной суперкласса
class A {
public int a = 5;
private int c = 6;
void superclass() {
System.out.println("Super class" + " " + "value of a is " + a);
System.out.println("Super class" + " " + "value of c is " + c);
}
}
class B extends A {
int b = 7;
int a = 8;
void subclass() {
System.out.println("Sub class" + " " + "value of b is " + b);
System.out.println("Sub class" + " " + "value of a is " + a);
}
}
class Demo {
public static void main(String args[]) {
A a1 = new A();
B b1 = new B();
b1.superclass();
}
}
В приведенном выше коде, если b1
является объект класса B.I назвали метод суперкласса с именем superclass()
; Теперь вывод a=5
. Но мой аргумент - почему он не может быть a=8
? a=5
скрыт и для доступа к нему мы должны использовать ключевое слово super. Но здесь без супер ключевого слова я получаю a=5
. Как это возможно?
Содержит ли ваш код? Я голосую, чтобы закрыть этот вопрос как вне темы. – CKing
Я не думаю, что это так. Я переписывал две строки по ошибке. Я отредактировал этот вопрос, он будет более читабельным после его утверждения. @ChetanKinger, sidenote, я не чувствую, что это не по теме. –
@AnindyaDutta Код не компилируется. Пожалуйста, прочитайте [this] (http://stackoverflow.com/help/on-topic) – CKing