В Kotlin наследование является центральной концепцией объектно-ориентированного программирования. Он позволяет классу наследовать свойства и методы другого класса, что позволяет вам расширять содержимое существующего класса или изменять его поведение.

В контексте наследования в основном различают: Суперкласс (или базовый класс), который определяет основные функциональные возможности, и Подкласс, который наследует эти функции и может изменять или расширять их.

Синтаксис наследования в Котлине

В Kotlin классы по умолчанию являются «финальными» и, следовательно, не наследуются, если они явно не объявлены как наследуемые. Чтобы включить класс для наследования, вы используете ключевое слово открытый, который помещается в начало объявления класса:

Для наследующего класса после имени класса ставится двоеточие, за которым следует вызов первичного конструктора суперкласса, от которого происходит наследование:

  • открытый класс MySuperClass { … } – Это создает суперкласс с ключевым словом открытый объявлен, что означает, что он может быть расширен другими классами.
  • класс MySubClass: MySuperClass() – В этой строке называется подкласс МойСубКласс определяется МойСуперКласс наследуется путем вызова первичного конструктора суперкласса.

Теперь посмотрим на конкретный пример:

В этом коде представлен класс Устройство общее устройство со свойством сделать (торговая марка/производитель), что является стандартным "Неопределенный" есть и метод printMake()для вывода токена.

Класс смартфон является подклассом Устройство и, таким образом, наследует все свойства и методы суперкласса Устройство. Это означает, что объект класса смартфон также о собственности сделать и метод printMake() располагает.

Когда дело доходит до наследования, важно отметить, что производный класс должен вызывать основной конструктор (или, если его нет, конструктор по умолчанию) суперкласса. 

В нашем конкретном случае класс определяет Устройство нет явных первичных конструкторов. Поэтому класс должен смартфонПроизводные от Устройство наследует конструктор класса по умолчанию Устройство . Вызова

Существует два основных способа вызова конструктора базового класса в производном классе. Первый способ — напрямую указать вызов конструктора базового класса после двоеточия.

Второй способ вызвать конструктор базового класса — определить вторичный конструктор в производном классе, который затем вызывается с использованием ключевого слова супер вызывает конструктор базового класса.

Конструктор Smartphone вызывает конструктор базового класса Device, обозначенный выражением : супер() изображено. В этом случае класс Device имеет конструктор по умолчанию (поскольку явный конструктор не определен), и Smartphone вызывает этот конструктор.

Это означает, что объект класса смартфон все свойства и методы Устройство наследует. Когда вы создаете объект смартфона, первое, что вы делаете, это создаете конструктор базового класса. Устройство вызывается для выполнения соответствующих инициализаций перед любой конкретной инициализацией для смартфон быть выполнены.

Независимо от того, какой метод используется, мы можем использовать объекты класса смартфон создайте и для них класс Устройство использовать унаследованные функции.

Наследование класса с первичным конструктором

Если суперкласс явно определяет конструктор (первичный или вторичный), подкласс должен вызвать этот конструктор. Методы вызова конструктора суперкласса в производном подклассе такие же. 

Первый метод — назвать и вызвать конструктор сразу после имени класса через двоеточие.

В этом коде установлен класс Устройство через конструктор свойство сделать. Вот почему это в классе смартфон определяет конструктор, который принимает строковое значение и передает его конструктору Устройство руки сдаю.

Оставить комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены * отмеченный