Да, вы можете технически расширить эти классы, создав новый класс в том же пакете (создайте структуру папок в соответствии с расширяемым пакетом), что означает, что вы создадите что-то вроде этого:
/src/main/java/android/widget/CustomDayPickerPagerAdapter.java
... и это позволит вам расширить класс DayPickerPagerAdapter
, потому что он закрыт для пакета.
Тем не менее, это не гарантия того, что вы сможете успешно управлять внутренними компонентами компонента так, как вам хочется, потому что большая часть функциональности вероятна private
, что означает, что вам не повезло .
Конечно, вы также можете скопировать исходный код этих компонентов, как вы предлагаете. Это совершенно законно, потому что весь проект Android с открытым исходным кодом (лицензия Apache 2.0). Недостатком этого является необходимость периодически проверять наличие обновлений и исправлений ошибок из апстрима и реинтегрировать их в свой пользовательский компонент.