Эффективная Java (Джошуа Блох) Пункт 17 гласит:
«Проектируйте и документируйте или наследование, или иначе запрещайте это»
Однако просто беглый взгляд на API Android показывает, что большинство классов API не являются окончательными; что нормально, если они также задокументированы для наследования (например, Просмотр
из Activity
). Но есть также несколько незавершенных классов, но в документации не упоминается о наследуемости этих классов. Просто несколько произвольных примеров, чтобы проиллюстрировать мою точку зрения:
WifiManager
, NotificationManager
...) UriMatcher
]. Camera
.Открытость и расширяемость - это философия Android, разве здесь обратное соглашение? Это означает, можно ли предположить, что все классы Android API предназначены для наследования (явно задокументированы или иным образом); если не объявлено окончательным?