[kotlin] 추상 클래스에서 상속과 오버라이딩의 개념

추상 클래스는 일부 메서드가 구현되지 않은 클래스입니다.

상속

상속은 부모 클래스의 특성 및 행위를 자식 클래스가 물려받는 것을 의미합니다. 추상 클래스 역시 상속을 통해 자식 클래스에게 추상 메서드나 일반 메서드를 상속할 수 있습니다.

// 추상 클래스 정의
abstract class Shape {
    // 추상 메서드
    abstract fun draw()
    
    // 메서드
    fun getColor() {
        println("Color is Red")
    }
}

// 자식 클래스 정의
class Circle : Shape() {
    // draw 메서드 구현
    override fun draw() {
        println("Drawing Circle")
    }
}

위의 예제에서 Shape 클래스의 추상 메서드 draw를 자식 클래스 Circle에서 오버라이딩하여 구현한 것을 볼 수 있습니다.

오버라이딩

오버라이딩은 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것을 의미합니다. 자식 클래스에서 오버라이딩된 메서드는 부모 클래스의 메서드와 동일한 시그니처를 가져야 합니다.

// 자식 클래스 정의
class Square : Shape() {
    // draw 메서드 오버라이딩
    override fun draw() {
        println("Drawing Square")
    }
}

위의 Square 클래스는 Shape 클래스에서 상속받은 draw 메서드를 오버라이딩하여 새로운 구현을 제공한 것입니다.

상속과 오버라이딩은 객체지향 프로그래밍에서 중요한 개념으로, 코드 재사용성유연한 확장성을 제공합니다.

이상으로 추상 클래스에서의 상속과 오버라이딩에 대해 알아보았습니다.

해당 내용은 Kotlin을 기반으로 작성되었습니다.

참고 문서