Как анонимный класс может расширить суперкласс или реализовать интерфейс?
java
anonymous-class
Майк Райландер
источник
источник
Ответы:
Анонимные классы должны что-то расширять или реализовывать, как и любой другой класс Java, даже если это просто
java.lang.Object
.Например:
Вот
r
объект анонимного класса, который реализуетRunnable
.Анонимный класс может расширять другой класс, используя тот же синтаксис:
Чего вы не можете сделать, так это реализовать более одного интерфейса. Для этого вам нужен именованный класс. Однако ни анонимный внутренний класс, ни именованный класс не могут расширять более одного класса.
источник
SomeClass
. Он по-прежнему анонимен из-за доменного имени{...}
.Анонимный класс обычно реализует интерфейс:
Если вы имеете в виду, можете ли вы реализовать 2 или более интерфейса, я думаю, что это невозможно. Затем вы можете создать частный интерфейс, объединяющий их. Хотя я не могу легко представить, почему вы хотите, чтобы анонимный класс имел это:
источник
Анонимные классы всегда расширяют суперкласс или реализуют интерфейсы. например:
Более того, хотя анонимный класс не может реализовывать несколько интерфейсов, вы можете создать интерфейс, расширяющий другой интерфейс, и позволить вашему анонимному классу реализовать его.
источник
Думаю, никто не понял вопроса. Думаю, этому парню было что-то вроде этого:
потому что это позволит реализовать несколько вариантов интерфейса:
это было бы действительно хорошо; но это не разрешено в Java .
Что вы можете сделать, так это использовать локальные классы внутри блоков методов:
источник
источник
Анонимный класс расширяется или реализуется при создании своего объекта. Например:
Здесь анонимный класс реализует интерфейс.
здесь анонимный класс расширяет абстрактный класс.
источник