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("Гав")
    }
}

fun main() {
    val dog = Dog()
    dog.makeSound()  // Изход: Гав
    dog.sleep()      // Изход: Спи
}