[kotlin] 추상 클래스의 필드와 추상 메서드의 활용 용도

추상 클래스는 다른 클래스에서 공통된 속성과 기능을 정의하는 데 사용됩니다. 이를 위해 추상 클래스는 필드와 메서드를 포함할 수 있으며, 필드를 사용하는 가장 일반적인 용도는 다른 클래스에서 공유할 값을 저장하는 것입니다.

필드 활용

추상 클래스의 필드는 해당 클래스와 해당 클래스를 상속하는 하위 클래스에서 사용됩니다. 이를 통해 공통 데이터나 동작을 정의할 수 있으며, 이들을 하위 클래스에서 재사용할 수 있습니다.

abstract class Shape {
    var color: String = "red"
}

class Circle : Shape() {
    fun draw() {
        println("Drawing a $color circle")
    }
}

fun main() {
    val circle = Circle()
    circle.draw() // 출력: Drawing a red circle
}

위의 예제에서 color 필드는 Shape 추상 클래스에 정의되었고, Circle 클래스에서 재사용되었습니다.

추상 메서드 활용

추상 메서드는 하위 클래스에서 구현이 필요한 메서드를 정의하는 데 사용됩니다. 이를 통해 추상 클래스에서는 메서드의 이름과 시그니처만 정의하고, 해당 메서드가 어떻게 구현되어야 하는지에 대한 세부 내용은 하위 클래스에서 구현할 수 있습니다.

abstract class Shape {
    var color: String = "red"
    abstract fun draw()
}

class Circle : Shape() {
    override fun draw() {
        println("Drawing a $color circle")
    }
}

fun main() {
    val circle = Circle()
    circle.draw() // 출력: Drawing a red circle
}

위의 예제에서 draw 메서드는 Shape 추상 클래스에서 추상 메서드로 정의되었고, Circle 클래스에서 구현되었습니다.

따라서, 추상 클래스의 필드와 추상 메서드는 다른 클래스에서 공통적으로 사용되는 속성과 동작을 정의하고, 이를 하위 클래스에서 재사용하거나 구체화하기 위해 활용됩니다.

결론

추상 클래스는 필드와 추상 메서드를 포함하여 다른 클래스에서 재사용되는 공통 속성과 동작을 정의하는 용도로 사용됩니다. 필드를 통해 데이터 공유를 가능하게 하고, 추상 메서드를 통해 하위 클래스에서 구현이 필요한 동작을 정의할 수 있습니다.

參考資料: