Здесь нет множественного наследования. Ваш фрагмент демонстрирует скрытие поля .
Внутри класса поле, имя которого совпадает с именем поля в суперклассе, скрывает поле суперкласса, даже если их типы различны. Внутри подкласса на поле в суперклассе нельзя ссылаться по его простому имени. Вместо этого поле должно быть доступно через super
.
super
позволяет видеть участников только на один уровень ниже (= члены прямого родителя). Цепи типа super.super
считаются синтаксически недействительными.
Но есть как минимум два способа добиться того, чего вы хотите:
(GrandParent)this).name
- повышение до GrandParent
GrandParent.class.getDeclaredField("name").get(this)
- извлечение отражением