РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1273 of 1310 menu

Ключевое слово override

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

Синтаксис

override fun methodName(parameters): ReturnType { // method body }
override val propertyName: Type get() = // getter implementation
override var propertyName: Type = initialValue

Пример

Переопределение метода в дочернем классе:

open class Animal { open fun makeSound() { println("Some generic animal sound") } } class Dog : Animal() { override fun makeSound() { println("Bark bark!") } } val dog = Dog() dog.makeSound()

Результат выполнения кода:

String "Bark bark!"

Пример

Переопределение свойства с собственной реализацией геттера:

open class Shape { open val area: Double = 0.0 } class Circle(val radius: Double) : Shape() { override val area: Double get() = Math.PI * radius * radius } val circle = Circle(5.0) println(circle.area)

Результат выполнения кода:

Double 78.53981633974483

Пример

Переопределение свойства с инициализацией значения:

open class Vehicle { open val maxSpeed: Int = 100 } class SportsCar : Vehicle() { override val maxSpeed: Int = 250 } val car = SportsCar() println(car.maxSpeed)

Результат выполнения кода:

Int 250

Пример

Переопределение метода с вызовом реализации родительского класса:

open class Printer { open fun printMessage() { println("Base printer message") } } class ColorPrinter : Printer() { override fun printMessage() { super.printMessage() println("Color printer additional message") } } val printer = ColorPrinter() printer.printMessage()

Результат выполнения кода:

String "Base printer message" String "Color printer additional message"

Пример

Переопределение абстрактных членов класса:

abstract class Database { abstract fun connect() } class MySQLDatabase : Database() { override fun connect() { println("MySQL database connected") } } val db = MySQLDatabase() db.connect()

Результат выполнения кода:

String "MySQL database connected"

Смотрите также

  • ключевое слово open,
    которое позволяет наследование и переопределение
  • ключевое слово abstract,
    которое определяет абстрактные классы и члены
  • ключевое слово super,
    которое обеспечивает доступ к реализации родительского класса
  • ключевое слово class,
    которое определяет классы в Kotlin
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить