Sobes.tech
Назад к вопросам
Junior — Middle
67

Объясните, что такое абстрактный класс и в чем его отличие от обычного класса?

Компании, где спрашивали
АВ Софт
JDPlex

Ответ от нейросети

sobes.tech 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()      // Выведет: Спит
}