[kotlin] 추상 클래스의 상속 계층 구조

추상 클래스는 다른 클래스에서 공통된 메서드를 정의하기 위해 사용됩니다. 이러한 추상 클래스는 다른 클래스에서 상속되어 사용되며, 상속 관계가 형성됩니다. 이번 글에서는 추상 클래스의 상속 계층 구조에 대해 알아보겠습니다.

추상 클래스의 정의

추상 클래스는 abstract 키워드를 사용하여 정의됩니다. 이 클래스는 추상 메서드와 비추상 메서드를 포함할 수 있으며, 하위 클래스에서 반드시 구현해야 하는 메서드를 명시할 수 있습니다.

예시:

abstract class Shape {
    abstract fun calculateArea(): Double
    fun display() {
        println("Displaying shape")
    }
}

위의 예시에서 Shape 클래스는 추상 메서드인 calculateArea와 비추상 메서드인 display를 포함하고 있습니다.

추상 클래스의 상속

추상 클래스는 다른 클래스에게 상속될 수 있습니다. 하위 클래스는 상속받은 추상 메서드를 반드시 구현해야 합니다. 이때, 추상 클래스의 하위 클래스가 또 다른 클래스에게 상속될 수도 있습니다. 이와 같이 상속 계층 구조가 형성됩니다.

예시:

class Circle : Shape() {
    override fun calculateArea(): Double {
        // Area calculation for circle
    }
}

위의 예시에서 Circle 클래스는 Shape 추상 클래스를 상속하고 calculateArea 메서드를 구현합니다.

결론

추상 클래스의 상속 계층 구조를 이해하고 추상 클래스와 하위 클래스 간의 관계를 잘 구성하는 것은 객체지향 프로그래밍에서 중요한 요소입니다. 상속 계층 구조를 효과적으로 활용함으로써 코드의 재사용성을 높일 수 있습니다.