[kotlin] 코틀린에서 인터페이스의 상속과 다형성 활용 방법 설명

코틀린은 자바와 마찬가지로 인터페이스의 상속과 다형성을 지원합니다. 인터페이스를 상속하고 다형성을 활용하는 것은 객체 지향 프로그래밍에서 중요한 개념입니다. 이번 블로그 포스트에서는 코틀린에서 인터페이스의 상속과 다형성을 활용하는 방법에 대해 알아보도록 하겠습니다.

인터페이스 상속하기

코틀린에서는 인터페이스를 상속하기 위해 : 기호를 사용합니다. 예를 들어, 다음과 같이 Vehicle 인터페이스를 정의할 수 있습니다.

interface Vehicle {
    fun drive()
    fun stop()
}

이제 Car 클래스가 Vehicle 인터페이스를 상속받도록 할 수 있습니다.

class Car : Vehicle {
    override fun drive() {
        println("Car is driving")
    }
    
    override fun stop() {
        println("Car is stopping")
    }
}

위의 코드에서 Car 클래스는 Vehicle 인터페이스의 모든 메소드를 구현해야 합니다. 만약 구현하지 않는다면 컴파일 에러가 발생합니다. 이제 Car 클래스는 Vehicle 인터페이스의 멤버 함수를 사용할 수 있습니다.

다형성 활용하기

코틀린에서 다형성을 활용하기 위해 인터페이스를 변수의 타입으로 사용할 수 있습니다. 이를 통해 여러 구현 클래스를 동일한 타입으로 다룰 수 있습니다. 예를 들어, 다음과 같이 driveVehicle 함수를 정의할 수 있습니다.

fun driveVehicle(vehicle: Vehicle) {
    vehicle.drive()
}

위의 코드에서 driveVehicle 함수는 Vehicle 타입의 인자를 받습니다. 이제 Car 인스턴스를 인자로 전달해 보겠습니다.

val car = Car()
driveVehicle(car)

driveVehicle 함수는 Car 클래스의 drive 메소드를 호출합니다. 이를 통해 Car 인스턴스를 Vehicle 타입으로 다룰 수 있게 됩니다.

결론

코틀린에서는 인터페이스의 상속과 다형성을 지원하여 객체 지향 프로그래밍의 핵심 개념을 구현할 수 있습니다. 인터페이스를 상속하여 클래스에서 메소드를 구현하고, 다형성을 활용하여 동일한 타입으로 다양한 클래스를 다룰 수 있습니다. 이를 통해 유연하고 확장 가능한 코드를 작성할 수 있습니다.

참고 문서: