Sobes.tech
Junior — Middle

Vysvětlete, co je to abstraktní třída a v čem se liší od běžné třídy.

sobes.tech AI

Odpověď od AI

Abstraktní třída je třída, která není určena k přímému vytváření instancí. Jejím hlavním úkolem je sloužit jako základ pro jiné třídy. V abstraktní třídě mohou být abstraktní metody — metody bez implementace, které musí být implementovány v podtřídách.

Rozdíly od běžné třídy:

  • Nelze přímo vytvořit objekt abstraktní třídy.
  • Může obsahovat abstraktní metody.
  • Používá se k definování společného rozhraní a chování pro skupinu podtříd.

Příklad v Kotlinu (Android):

abstract class Animal {
    abstract fun makeSound()

    fun sleep() {
        println("Spí")
    }
}

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

fun main() {
    val dog = Dog()
    dog.makeSound()  // Vypíše: Haf
    dog.sleep()      // Vypíše: Spí
}