Я просто обновляю функции oops java. Итак, у меня есть небольшая путаница в отношении концепции наследования. Для этого у меня есть следующий пример кода:
class Super{
int index = 5;
public void printVal(){
System.out.println("Super");
}
}
class Sub extends Super{
int index = 2;
public void printVal(){
System.out.println("Sub");
}
}
public class Runner {
public static void main(String args[]){
Super sup = new Sub();
System.out.println(sup.index+",");
sup.printVal();
}
}
Теперь выше код дает мне вывод как: 5, Sub.
Здесь мы переопределяем метод printVal(), поэтому понятно, что он обращается только к методу дочернего класса.
Но я не мог понять, почему он обращается к значению x из класса Super...
Спасибо заранее....