IntelliJ говорит это, потому что ничто не сломалось бы, даже если run
были удалены.Единственный раз, когда вы вызываете run
, это o.run()
, но o
определенно является подклассом H
(в соответствии с общим ограничением), поэтому он определенно имеет объявленный метод run
, независимо от того, объявлен ли iface
run
метод или нет.
Чтобы удалить это предупреждение, нужно установить общее ограничение F extends iface
.