Sobes.tech
Junior — Middle

Каква е ролята и предназначението на абстрактните класове в обектно-ориентираното програмиране?

sobes.tech AI

Отговор от AI

Абстрактните класове в обектно-ориентираното програмиране служат като шаблони за създаване на други класове. Те не могат да бъдат инстанцирани директно и обикновено съдържат както реализирани методи, така и абстрактни (без реализация), които трябва да бъдат презаписани в подкласовете. Това позволява да се определи общ интерфейс и базово поведение, като същевременно се осигурява гъвкавост за конкретни реализации.

Пример на Kotlin (Android):

abstract class Animal {
    abstract fun makeSound()
    fun sleep() {
        println("Спи")
    }
}

class Dog : Animal() {
    override fun makeSound() {
        println("Гав-гав")
    }
}

Тук Animal е абстрактен клас, който задава общ договор за всички животни, а Dog реализира конкретно поведение на звука.