Sobes.tech
Junior — Middle

Spiega cos'è una classe astratta e in cosa si differisce da una classe normale.

sobes.tech AI

Risposta dell'AI

Una classe astratta è una classe che non è destinata a creare istanze direttamente. Il suo scopo principale è fungere da base per altre classi. In una classe astratta possono esserci metodi astratti — metodi senza implementazione, che devono essere implementati nelle sottoclassi.

Differenze rispetto a una classe normale:

  • Non è possibile creare un oggetto di una classe astratta direttamente.
  • Può contenere metodi astratti.
  • Viene usata per definire un'interfaccia e un comportamento comuni per un gruppo di sottoclassi.

Esempio in Kotlin (Android):

abstract class Animal {
    abstract fun makeSound()

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

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

fun main() {
    val dog = Dog()
    dog.makeSound()  // Stampa: Bau
    dog.sleep()      // Stampa: Dorme
}