При создании анонимного класса я должен включать методы расширенного класса независимо от того, является ли он абстрактным или конкретным? - PullRequest
0 голосов
/ 15 апреля 2019

Когда мы используем это new A() {};, если A является конкретным, а не абстрактным, должны ли мы включать методы A?Что если A был интерфейсом?Нужно ли включать методы А?Почему?

1 Ответ

0 голосов
/ 15 апреля 2019

Анонимность класса не имеет никакого отношения к тому, должны ли вы включать методы расширенного класса или реализованного интерфейса.

Если A является конкретным, вам не нужно переопределятьлюбые методы.Вы можете переопределить их, конечно, и вы должны переопределить хотя бы один из них, иначе анонимный подкласс бесполезен;Вы можете использовать A напрямую.Вы можете предоставить свои собственные новые методы, хотя они не будут вызываться напрямую.

Если A является абстрактным или интерфейсом, то вы должны переопределить все абстрактные методы, как и любой другой именованный конкретный класс.

Надо использовать аннотацию @Override во всех методах, предназначенных для переопределения суперкласса или реализации интерфейса, чтобы гарантировать, что опечатки не приведут к методу, который ничего не переопределит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...