Можно ли расширить нестатический внутренний класс в Java? - PullRequest
2 голосов
/ 27 марта 2012

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

Заранее спасибо.

Ответы [ 2 ]

9 голосов
/ 27 марта 2012

Я предполагаю, что вы хотите расширить нестатический внутренний класс за пределами включающего экземпляра, что возможно.

class Alpha
{
      class Beta ( ) { }
}

class Gamma extends Alpha . Beta
{
      // important to get the constructor right or else the whole thing fails
      Gamma ( Alpha alpha )
      {
             alpha . super ( ) ;
      }
}

Вы также можете расширить внутренний класс внутри исходного класса включения

class OuterParent
{
     class InnerParent { }

     class InnerChild1 extends OuterParent { }
}

или расширить исходный класс включения и расширить внутренний класс в дочернем классе

class OuterChild extends OuterParent
{
     class InnerChild2 extends OuterParent { }
}
3 голосов
/ 27 марта 2012

Да, это возможно.Он будет иметь доступ к членам включающего класса.

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