супер концепция без путаницы
==================================== *=====
2 правила, чтобы узнать, откуда будет выполняться метод (когда для вызова методов используется ссылка на супер тип)
ПРИМЕЧАНИЕ: проверьте оператор "создание объекта" / "назначение ссылки" для применения правила
1 ПРАВИЛО: 1-я проверка вызываемого метода. Если статический / перегруженный / одиночный - тогда он становится статическим полиморфизмом / статическим (компилятор ищет ссылочный тип) ---следовательно, всегда выполняется из ссылочного типа
2 ПРАВИЛО: метод проверки, который будет вызван - если переопределен - тогда он становится динамический полиморфизм (jvm ищет тип объекта) --- следовательно, всегда выполняется из типа объекта (т. е. право на новое ключевое слово)
, например:
super s=new child();
s.play();
здесь 2 случая:
1-й : проверьте, что play () является статическим (статический / перегруженный / одиночный метод) или динамическим (переопределенным)
2-м: , еслистатический он будет исполняться из супер т.е.тип ference приводит к полиморфизму времени компиляции
, если динамический он будет выполняться от дочернего, т.е. тип объекта приводит к динамическому полиморфизму