Я думаю, что это проблема, которая нарушает соглашение о наследовании.
Расширяя класс, вы подчиняетесь / соглашаетесь с его поведением, особенностями
Пока вы звоните super.super.method()
, вы хотите разорвать собственное соглашение о послушании.
Вы просто не можете выбрать вишню из суперкласса .
Однако могут возникнуть ситуации, когда вы чувствуете необходимость вызвать super.super.method()
- обычно это плохой знак проекта, в вашем коде или в коде, который вы наследуете!
Если классы super и super super не могут быть реорганизованы (некоторый унаследованный код), тогда выбирайте композицию вместо наследования.
Нарушение инкапсуляции - это когда вы @ переопределяете некоторые методы, разбивая инкапсулированный код.
Методы, разработанные, чтобы не быть переопределенными, отмечены
* * Окончательный тысячу двадцать-один * * тысяча двадцать-два.