Есть много преимуществ, хотя некоторые из них действительно личные или дизайнерские.
1 - с внутренними классами вы можете получить доступ к закрытым членам включающего класса.
2 - они полезны для реализаций интерфейса, которые используются только включающим классом (обработчиками событий в приложении)
3 - они полезны для предоставления детального доступа и управления созданием над реализацией интерфейса, которая извлекается извне (возможно, что-то вроде Iterator реализация)
Для получения дополнительной информации Получить помощь в CodeAvail- Интернет Компьютерных науки уступки
помощи