[kotlin] 코틀린에서 상속과 인터페이스의 차이점

코틀린은 Java와 비슷한 문법을 가진 프로그래밍 언어입니다. 하지만 코틀린은 몇 가지 차이점을 갖고 있으며, 상속과 인터페이스의 개념도 이를 반영하고 있습니다.

상속 (Inheritance)

상속은 클래스로부터 다른 클래스를 파생하는 개념입니다. 상속을 통해 기존 클래스의 속성과 동작을 다른 클래스에서 재사용할 수 있습니다.

코틀린에서 상속을 하려면 : 기호를 사용하여 기존 클래스를 선언하고, 파생 클래스를 만들 때에는 이 기호 뒤에 파생 클래스를 선언합니다. 파생 클래스는 하나의 부모 클래스만 상속받을 수 있습니다.

open class Parent {
    open fun someFunction() {
        print("Parent implementation")
    }
}

class Child : Parent() {
    override fun someFunction() {
        print("Child implementation")
    }
}

인터페이스 (Interfaces)

인터페이스는 클래스가 구현해야 하는 메서드들의 집합입니다. 인터페이스는 클래스에 구현되어야 하는 동작을 정의하는 역할을 합니다.

코틀린에서 인터페이스를 선언하기 위해서는 interface 키워드를 사용합니다. 클래스는 인터페이스를 구현하기 위해 : 인터페이스명을 통해 선언합니다. 클래스는 여러 개의 인터페이스를 구현할 수 있습니다.

// 인터페이스 선언
interface Printable {
    fun print()
}

interface Displayable {
    fun display()
}

// 클래스가 인터페이스를 구현
class MyClass : Printable, Displayable {
    override fun print() {
        println("Printing...")
    }

    override fun display() {
        println("Displaying...")
    }
}

차이점

상속과 인터페이스는 모두 클래스의 구조를 확장하는 개념이지만, 목적과 사용 방법에 차이가 있습니다.

따라서, 상속은 기존 클래스를 수정하고 확장하는 데 사용하며, 인터페이스는 클래스의 동작을 정의하는 데 사용됩니다. 이러한 차이점을 고려하여 상황에 맞게 상속과 인터페이스를 선택해야 합니다.


참고: