Sobes.tech
Junior — Middle

Објасните шта је апстрактна класа и како се разликује од обичне класе.

sobes.tech АИ

Одговор од АИ

Apstraktna klasa je klasa koja nije namenjena za direktno kreiranje instanci. Njena glavna svrha je da služi kao osnova za druge klase. U apstraktnoj klasi mogu postojati apstraktne metode — metode bez implementacije koje moraju biti implementirane u podklasama.

Razlike u odnosu na običnu klasu:

  • Ne može se direktno kreirati objekat apstraktne klase.
  • Može sadržavati apstraktne metode.
  • Koristi se za definisanje zajedničkog interfejsa i ponašanja za grupu podklasa.

Primer u Kotlinu (Android):

abstract class Animal {
    abstract fun makeSound()

    fun sleep() {
        println("Spava")
    }
}

class Dog : Animal() {
    override fun makeSound() {
        println("Laj")
    }
}

fun main() {
    val dog = Dog()
    dog.makeSound()  // Ispis: Laj
    dog.sleep()      // Ispis: Spava
}