Наследование внутренних классов:
Статический вложенный класс
Может быть унаследован от:
1. Обычного класса
2. Статического вложенного класса, который объявлен во внешнем классе или его предках
От него может наследоваться:
1. Любой класс
Анонимный класс
Не может наследоваться от другого класса и никакой класс не может наследоваться от него
Локальный класс
Может быть унаследован от:
1. Обычного класса
2. Внутреннего класса, который объявлен в том же классе, что и данный локальный, либо в его предках
3. От другого локального класса, объявленного в том же блоке
От него может наследоваться:
1. Другой локальный класс внутри того же блока
Внутренний класс
Может быть унаследован от:
1. Обычного класса
2. Статического класса
3. Внутреннего класса
От него может наследоваться:
1. Другой внутренний класс, объявленный в том же самом внешнем классе или в его наследнике
2. Обычный класс
3. Внутренний класс, объявленный в другом классе
Во 2 и 3 случае в конструктор требуется явная передача объекта внешнего класса и вызов у него метода super()