Можно ли создавать статические методы/переменные во внутреннем классе?​ Назовите три любых внутренних класса? Как внутренние классы решают проблему множественного наследования в java?​

Статические методы/переменные объявлять во внутреннем классе (не вложенном) нельзя. Внутренние классы можно встретить во всей библиотеке java core, private static class Holder —вложенный класс HashMap из java.util, в интерфейсе Map есть interface Entry<K,V>, который опять же в HashMap и реализуется в другом вложенном классе static class Entry<K,V> implements Map.Entry<K,V>. Открываем исходники обёрток и в Integer натыкаемся на private static class IntegerCache. И так далее… Ещё одним плюсом внутренних классов — является частичное решение проблемы множественного наследования, которое запрещено в java. Если классу А необходимо использовать protected методы класса B и C, то можно от класса В унаследоваться, а внутри себя объявить класс D, который будет наследником С. Таким образом у класса А появится доступ к желаемым методам в обход удовлетворения связи «является».


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *