Урок 6: Cтили, темы в приложении и их кастомизация
Собственные стили в Android Продолжаем работать с ресурсами и сейчас я расскажу про то, как создавать собственные кастомные стили. Для объединения атрибутов во имя более удобной поддержки и расширяемости кода. Также обсудим как переопределять атрибуты стилей стандартных тем, чтобы они корректно работали на различных устройствах. Разберем файлик с темой приложения и кастомизируем ее. Создание кастомного […]
Читать полностью
В чем различие между приватным конструктором и финальным классом?
Если установить модификатор видимости для конструктора класса private, то его нельзя будет запустить из класса наследника, а это означает что наследование станет невозможным. Эту возможность обычно используют для создания утилитарных классов и в паттерне singleton. Модификатор final запрещает наследование от исходного класса. Таким образом ограничение с использованием модификатора private слабее, чем через модификатор final. Его […]
Читать полностью
Урок 15: Абстрактные классы и интерфейсы в Kotlin. Имплементация
Абстрактные классы На прошлом уроке я вскользь упомянул ключевое слово abstract, с помощью которого мы запретили на время создавать экземпляры базового класса. То есть абстрактный класс предназначен по сути только для описания общих данных будущих экземпляров. От него также можно наследоваться, однако, когда мы помечаем его как асбтрактный, ключевое слово open использовать уже не нужно. […]
Читать полностью
Урок 18: ООП. Полиморфизм в Kotlin, 3 типа (Ad hoc, Subtyping, Parametric)
Суть полиморфизма Тема полиморфизма может казаться слегка запутанной. А еще это не редкий вопрос на собеседованиях. Поэтому добавлю немного структурности, чтобы все стало разложено по полкам. Сначала расскажу про основную суть полиморфизма, затем пройдемся по некоторым типам и их описаниям, в заключении перейдем к примерам. Название “Полиморф” говорит о том, что это что-то многообразное, а […]
Читать полностью