Anonymous class
Ссылка на презентацию: Anonymous class
Анонимные классы — это внутренние классы без имени. Поскольку у них нет имени, мы не можем использовать их для повторного создания экземпляров анонимных классов. В результате нам приходится объявлять и создавать экземпляры анонимных классов в одном выражении в момент использования.
При помощи анонимных классов можно:
расширить существующий класс
реализовать интерфейс
Применяйте анонимные классы, если вам нужен локальный класс для одноразового использования.
Важные замечания
Синтаксис анонимных классов не позволяет реализовать несколько интерфейсов.
Во время построения может существовать ровно один экземпляр анонимного класса.
Поэтому они никогда не могут быть абстрактными.
Поскольку у них нет имени, мы не можем их расширить.
По той же причине анонимные классы не могут иметь явно объявленных конструкторов.
Анонимные классы не могут иметь никаких статических членов, кроме тех, которые являются final.
На самом деле отсутствие конструктора не представляет для нас проблемы по следующим причинам:
мы создаем экземпляры анонимных классов в тот же момент, когда мы их объявляем
из экземпляров анонимного класса мы можем получить доступ к локальным переменным и аргументам членов класса
Пример:
new Book("Design Patterns") {
@Override
public String description() {
return "Famous book."; }
}
Comments