[kotlin] 코틀린에서 인터페이스의 변수와 메서드 사용 방법

인터페이스 변수 사용하기

인터페이스는 변수를 가질 수 있지만, 변수는 기본적으로 abstract이며, 값을 가질 수 없습니다. 인터페이스 변수는 상속받은 클래스에서 구현되어야 합니다.

interface MyInterface {
    val myVariable: String // 추상 변수 선언
}

class MyClass : MyInterface {
    override val myVariable = "Hello, World!" // 변수 구현 및 초기화
}

위의 예제에서, MyInterface 인터페이스는 myVariable이라는 추상 변수를 선언합니다. MyClass 클래스는 MyInterface를 구현하고, myVariable을 구체적으로 구현하고 초기화합니다.

인터페이스 메서드 사용하기

인터페이스는 추상 메서드를 가질 수 있으며, 인터페이스를 구현하는 클래스에서는 이러한 추상 메서드의 구현을 제공해야 합니다.

interface MyInterface {
    fun myMethod() // 추상 메서드 선언
}

class MyClass : MyInterface {
    override fun myMethod() {
        println("Hello from myMethod!") // 메서드 구현
    }
}

위의 예제에서, MyInterface 인터페이스는 myMethod라는 추상 메서드를 선언합니다. MyClass 클래스는 MyInterface를 구현하고, myMethod를 구체적으로 구현합니다.

상속과 인터페이스 사용하기

클래스는 다중 상속을 지원하지 않지만, 여러 인터페이스를 구현할 수 있습니다.

interface InterfaceA {
    fun methodA()
}

interface InterfaceB {
    fun methodB()
}

class MyClass : InterfaceA, InterfaceB {
    override fun methodA() {
        println("Method from InterfaceA")
    }

    override fun methodB() {
        println("Method from InterfaceB")
    }
}

위의 예제에서, MyClass 클래스는 InterfaceAInterfaceB를 구현하고, 두 인터페이스의 메서드들을 구현합니다.

인터페이스는 다형성을 활용하여 코드의 유연성과 재사용성을 높일 수 있습니다. 특정한 인터페이스를 구현하는 클래스를 사용하려면, 인터페이스 변수를 선언하고 해당 인터페이스를 구현하는 클래스의 인스턴스를 할당하면 됩니다.

val instance: MyInterface = MyClass()
instance.myMethod() // MyClass에서 구현한 메서드 호출

이렇게 함으로써, 인터페이스를 통해 추상화를 달성하고, 클래스 간의 계약을 정의할 수 있습니다.

더욱 자세한 내용은 공식 Kotlin 문서를 참고해주세요.