Junior — Middle
Wyjaśnij, czym jest klasa abstrakcyjna i czym różni się od zwykłej klasy.
sobes.tech AI
Odpowiedź od AI
Klasa abstrakcyjna to klasa, która nie jest przeznaczona do tworzenia instancji bezpośrednio. Jej głównym zadaniem jest służenie jako baza dla innych klas. W klasie abstrakcyjnej mogą znajdować się metody abstrakcyjne — metody bez implementacji, które muszą być zaimplementowane w podklasach.
Różnice w porównaniu do zwykłej klasy:
- Nie można bezpośrednio tworzyć obiektu klasy abstrakcyjnej.
- Może zawierać metody abstrakcyjne.
- Służy do określenia wspólnego interfejsu i zachowania dla grupy podklas.
Przykład w Kotlin (Android):
abstract class Animal {
abstract fun makeSound()
fun sleep() {
println("Śpi")
}
}
class Dog : Animal() {
override fun makeSound() {
println("Hau")
}
}
fun main() {
val dog = Dog()
dog.makeSound() // Wypisze: Hau
dog.sleep() // Wypisze: Śpi
}