использование супер и как его заменить, Java - PullRequest
0 голосов
/ 15 марта 2019

Мой вопрос о том, есть ли способ заменить super, чтобы все еще вызывать родительский метод или родительскую переменную?Если есть способ, это аналогично использованию супер?Проще говоря, это супер заменимо?

1 Ответ

0 голосов
/ 15 марта 2019

Некоторые языки не реализуют концепцию подклассов (например, Visual Basic в более ранних версиях).Обходной путь для вызова «методов суперкласса» заключался в реализации шаблона делегата и создании там «суперкласса» (который не был настоящим суперклассом).Затем суперкласс вызывался не через ключевое слово super, а через шаблон делегирования.Чтобы понять шаблон делегата, см. Литературу по Design Pattern - или просто https://en.wikipedia.org/wiki/Delegation_pattern

. Эта концепция описывает, как super может быть заменена делегированием - но в Java нет необходимости делать это.Просто не делайте этого.

И да, есть разница: когда вы создаете экземпляр объекта Java, у вас есть этот экземпляр объекта, который предоставляет все методы и т. Д. Из его суперклассов.Когда вы реализуете обходной путь с шаблоном делегата, у вас будет второй экземпляр (делегат суперкласса будет отдельным экземпляром в этом случае).

...