Определяется ли тип класса-члена ссылочной переменной или на что она указывает ?
в приведенном ниже примере, когда я вызываю метод foo с помощью p, он получает тот, который находится в дочернем классе, но когда я обращаюсь к переменной num, он получает тот, который находится в родительском классе, так что тип члена основан на типе ссылочной переменной или на какой объект он указывает ?
public class Main { public static void main(String[] args) { Parent p=new Child(); System.out.println(p.num); p.foo(); } } class Parent { public int num = 10; void foo() { System.out.println("Foo in parent"); } } class Child extends Parent { public int num = 100; @Override void foo() { System.out.println("Foo in Child"); } }
Что я уже пробовал:
я не знаю, что здесь заполнять, так что это просто случайность, извините !