[kotlin] 코틀린에서 인터페이스를 구현하는 방법 예시
다음은 코틀린에서 인터페이스를 구현하는 예시입니다.
interface Shape {
fun getArea(): Double
fun getPerimeter(): Double
}
class Circle(val radius: Double) : Shape {
override fun getArea(): Double {
return Math.PI * radius * radius
}
override fun getPerimeter(): Double {
return 2 * Math.PI * radius
}
}
class Rectangle(val width: Double, val height: Double) : Shape {
override fun getArea(): Double {
return width * height
}
override fun getPerimeter(): Double {
return 2 * (width + height)
}
}
fun main() {
val circle = Circle(5.0)
val rectangle = Rectangle(3.0, 4.0)
println("Circle area: ${circle.getArea()}")
println("Circle perimeter: ${circle.getPerimeter()}")
println("Rectangle area: ${rectangle.getArea()}")
println("Rectangle perimeter: ${rectangle.getPerimeter()}")
}
위의 예시에서 Shape
인터페이스는 getArea()
와 getPerimeter()
두 가지 메서드를 선언하고 있습니다. Circle
클래스와 Rectangle
클래스는 이 인터페이스를 구현하며, 각각 원과 사각형의 면적과 둘레를 계산하는 메서드를 구현합니다.
main()
함수에서는 Circle
과 Rectangle
객체를 생성하고, 해당 객체의 getArea()
와 getPerimeter()
메서드를 호출하여 면적과 둘레를 출력합니다.
이 예시를 실행하면 다음과 같은 결과가 출력됩니다:
Circle area: 78.53981633974483
Circle perimeter: 31.41592653589793
Rectangle area: 12.0
Rectangle perimeter: 14.0
코틀린에서는 인터페이스를 구현하는 방법이 간단하고 명확하며, 객체 지향 프로그래밍의 다형성을 구현하는 데 유용합니다. 추가로, 코틀린에서는 인터페이스에 디폴트 구현을 제공할 수 있는 기능도 제공합니다. 이를테면 Shape
인터페이스에 getColor(): String
와 같은 메서드를 추가하고 기본 구현을 제공할 수도 있습니다.