[kotlin] 상속과 인터페이스 구현

상속과 인터페이스 구현은 객체지향 프로그래밍에서 중요한 개념입니다. Kotlin도 이러한 개념을 지원하며, 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.

상속 (Inheritance)

Kotlin에서 상속은 : 기호를 사용하여 정의됩니다. 단일 상속만 지원되며, 부모 클래스에 open 키워드가 붙어있어야 하위 클래스에서 상속이 가능합니다.

예를 들어, open 키워드가 사용된 부모 클래스를 정의하고, 그 클래스를 상속받는 자식 클래스를 작성하는 방법은 다음과 같습니다.

open class Animal {
    open fun makeSound() {
        println("Some sound")
    }
}

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

위의 예시에서 Animal 클래스는 open 키워드로 정의되었고, makeSound 메서드도 open 키워드로 정의되었습니다. Dog 클래스에서 Animal 클래스를 상속받고 makeSound 메서드를 오버라이드하여 고유한 동작을 정의하고 있습니다.

인터페이스 (Interface)

인터페이스는 클래스가 구현해야 하는 동작을 정의하는데 사용됩니다. Kotlin에서는 interface 키워드를 사용하여 인터페이스를 정의할 수 있습니다. 인터페이스에서 구현이 필요한 메서드를 정의하고, 그 인터페이스를 클래스에서 구현할 수 있습니다.

다음은 인터페이스와 클래스의 예시입니다.

interface Shape {
    fun calculateArea(): Double
}

class Circle(radius: Double) : Shape {
    override fun calculateArea(): Double {
        return 3.14 * radius * radius
    }
}

위의 예시에서 Shape 인터페이스는 calculateArea 메서드를 정의하고, Circle 클래스에서 이 인터페이스를 구현하여 원의 넓이를 계산하는 동작을 정의하고 있습니다.

이러한 상속과 인터페이스 구현을 통해 Kotlin에서 유연하고 모듈화된 코드를 작성할 수 있습니다.

이와 관련된 자세한 내용은 Kotlin 공식 문서 Kotlin InheritanceKotlin Interfaces를 참조하시기 바랍니다.