[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
클래스는 InterfaceA
와 InterfaceB
를 구현하고, 두 인터페이스의 메서드들을 구현합니다.
인터페이스는 다형성을 활용하여 코드의 유연성과 재사용성을 높일 수 있습니다. 특정한 인터페이스를 구현하는 클래스를 사용하려면, 인터페이스 변수를 선언하고 해당 인터페이스를 구현하는 클래스의 인스턴스를 할당하면 됩니다.
val instance: MyInterface = MyClass()
instance.myMethod() // MyClass에서 구현한 메서드 호출
이렇게 함으로써, 인터페이스를 통해 추상화를 달성하고, 클래스 간의 계약을 정의할 수 있습니다.
더욱 자세한 내용은 공식 Kotlin 문서를 참고해주세요.