Como uma classe anônima pode estender uma superclasse ou implementar uma interface?
java
anonymous-class
Mike Rylander
fonte
fonte
Respostas:
As classes anônimas devem estender ou implementar algo, como qualquer outra classe Java, mesmo que seja apenas
java.lang.Object
.Por exemplo:
Aqui,
r
é um objeto de uma classe anônima que implementaRunnable
.Uma classe anônima pode estender outra classe usando a mesma sintaxe:
O que você não pode fazer é implementar mais de uma interface. Você precisa de uma classe nomeada para fazer isso. Nem uma classe interna anônima, nem uma classe nomeada, entretanto, podem estender mais de uma classe.
fonte
SomeClass
. Ainda é anônimo, devido ao{...}
.Uma classe anônima geralmente implementa uma interface:
Se você quer dizer se pode implementar 2 ou mais interfaces, acho que não é possível. Você pode então fazer uma interface privada que combina os dois. Embora eu não possa imaginar facilmente por que você gostaria que uma classe anônima tivesse isso:
fonte
As classes anônimas sempre estendem a superclasse ou implementam interfaces. por exemplo:
Além disso, embora a classe anônima não possa implementar várias interfaces, você pode criar uma interface que estenda outra interface e permitir que sua classe anônima a implemente.
fonte
Acho que ninguém entendeu a pergunta. Acho que o que esse cara queria era algo assim:
porque isso permitiria coisas como várias implementações de interface:
isso seria realmente muito bom; mas isso não é permitido em Java .
O que você pode fazer é usar classes locais dentro de blocos de método:
fonte
fonte
Uma classe anônima está estendendo ou implementando ao criar seu objeto. Por exemplo:
Aqui, a classe anônima está implementando Interface.
aqui, a Classe anônima está estendendo uma Classe abstrata.
fonte