[kotlin] 추상 클래스를 상속받은 클래스의 추상 메서드 오버라이딩

Kotlin에서는 추상 클래스를 정의하고 해당 클래스를 상속받은 클래스에서 추상 메서드를 오버라이딩할 수 있습니다.

추상 클래스 정의

추상 클래스는 abstract 키워드를 사용하여 정의할 수 있습니다. 추상 클래스 내에는 추상 메서드 또는 구현된 메서드가 포함될 수 있습니다.

abstract class Animal {
    abstract fun makeSound()
    fun move() {
        println("Moving...")
    }
}

위의 예시에서 Animal 클래스는 makeSound 메서드를 추상으로 정의하고 move 메서드는 구현되어 있습니다.

상속 및 추상 메서드 오버라이딩

추상 클래스를 상속받은 클래스에서는 부모 클래스의 추상 메서드를 반드시 오버라이딩해야 합니다. 오버라이딩을 하지 않으면 컴파일 오류가 발생합니다.

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

위의 예시에서 Dog 클래스는 Animal 클래스를 상속받고 makeSound 메서드를 오버라이딩하여 구현하고 있습니다.

요약

Kotlin에서는 추상 클래스를 정의하고 이를 상속받은 클래스에서 추상 메서드를 오버라이딩할 수 있습니다. 이를 통해 각 클래스는 자체적인 동작을 정의하고 확장할 수 있습니다.

참고 자료