... > Kotlin > Интерфейсы и абстрактные...

Интерфейсы и абстрактные классы в Kotlin

НАВИГАЦИЯ ПО СТРАНИЦЕ

Определение интерфейсов Реализация интерфейсов Абстрактные классы

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

Определение интерфейсов

interface Shape {
    fun area(): Double
    fun perimeter(): Double
}

В этом примере определен интерфейс Shape с двумя методами: area и perimeter.

Реализация интерфейсов

class Circle(val radius: Double) : Shape {
    override fun area(): Double {
        return Math.PI * radius * radius
    }

    override fun perimeter(): Double {
        return 2 * Math.PI * radius
    }
}

Класс Circle реализует интерфейс Shape и предоставляет конкретные реализации методов area и perimeter.

Абстрактные классы

abstract class Animal(val name: String) {
    abstract fun makeSound()
}

Абстрактный класс Animal с абстрактным методом makeSound, который должен быть реализован в подклассах.

class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("Woof! Woof!")
    }
}

Класс Dog наследует от абстрактного класса Animal и предоставляет реализацию метода makeSound.

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