Java: анонимный класс как подкласс существующей реализации интерфейса? - PullRequest
3 голосов
/ 20 октября 2010

У меня есть interface IA, interface IB extends IA и class A implements IA.

Теперь я хочу создать анонимный класс, который расширяется от A и реализует IB.

Какэто будет выглядеть?Я думал о чем-то вроде этого:

new A() implements IB { /* ... */ }

( Error: Type mismatch: cannot convert from A to IB )

или:

new IB() extends A { /* ... */ }

( Error: Syntax error on token(s), misplaced construct(s) )

Или невозможно создать нечто подобное в качестве анонимного класса?

1 Ответ

4 голосов
/ 20 октября 2010

Полагаю, вы могли бы создать абстрактный именованный внутренний класс, который бы объединял эти два и расширял их анонимным классом.

   private static abstract class AB extends A implements IB {};
    ...
   new AB() {};

Немного неуклюже, но я не думаю, что вы можете реализовать оба варианта.

...