코틀린은 객체 지향 프로그래밍 언어로서, 클래스 상속과 인터페이스를 함께 사용할 수 있습니다. 이를 통해 다양한 기능을 조합하고 코드를 재사용할 수 있습니다.
클래스 상속하기
클래스 상속은 이미 정의된 클래스를 기반으로 새로운 클래스를 만드는 방법입니다. 하위 클래스(subclass)는 상위 클래스(superclass)의 속성과 메서드를 상속받아 사용할 수 있습니다. 코틀린에서 클래스 상속은 :
뒤에 상위 클래스의 이름을 적는 것으로 이루어집니다.
open class Vehicle {
fun startEngine() {
println("Engine started")
}
}
class Car : Vehicle() {
fun drive() {
println("Driving the car")
}
}
위의 예제에서 Vehicle
클래스는 startEngine()
메서드를 가지고 있고, Car
클래스는 Vehicle
클래스를 상속받아 drive()
메서드를 추가로 정의하고 있습니다. 이렇게 상속을 통해 Car
클래스는 startEngine()
메서드를 호출할 수 있습니다.
인터페이스 구현하기
인터페이스는 클래스가 구현해야 하는 메서드의 목록을 정의하는 역할을 합니다. 코틀린에서 인터페이스는 interface
키워드를 사용하여 정의합니다. 클래스가 인터페이스를 구현하기 위해서는 :
뒤에 인터페이스의 이름을 적는 것으로 이루어집니다.
interface Flyable {
fun fly()
}
class Bird : Flyable {
override fun fly() {
println("Flying like a bird")
}
}
위의 예제에서 Flyable
인터페이스는 fly()
메서드를 정의하고 있습니다. Bird
클래스는 Flyable
인터페이스를 구현하여 fly()
메서드를 오버라이딩하여 사용하고 있습니다.
상속과 인터페이스 함께 사용하기
코틀린에서는 클래스가 상속과 인터페이스를 함께 사용할 수 있습니다. 상속을 받은 클래스가 인터페이스를 구현하는 형태로 코드를 작성할 수 있습니다.
open class Animal {
fun eat() {
println("Eating")
}
}
interface Swimmable {
fun swim()
}
class Dolphin : Animal(), Swimmable {
override fun swim() {
println("Swimming like a dolphin")
}
}
위의 예제에서 Dolphin
클래스는 Animal
클래스를 상속받고, Swimmable
인터페이스를 구현하고 있습니다. 따라서 Dolphin
클래스는 eat()
메서드와 swim()
메서드를 모두 사용할 수 있습니다.
결론
코틀린에서는 클래스 상속과 인터페이스를 함께 사용하여 다양한 기능을 추가하고 코드를 재사용할 수 있습니다. 클래스 상속은 :
뒤에 상위 클래스의 이름을 적는 것으로 이루어지고, 인터페이스 구현은 :
뒤에 인터페이스의 이름을 적는 것으로 이루어집니다. 클래스가 상속과 인터페이스를 함께 사용하는 경우에는 클래스 상속을 먼저 명시하고, 그 뒤에 쉼표로 구분하여 인터페이스를 명시합니다.
참고문서: Kotlin - Inheritance, Kotlin - Interfaces