[kotlin] 추상 클래스의 인스턴스 생성 가능 여부
하지만 추상 클래스에 정의된 추상 메서드를 구현하지 않은 경우에는 하위 클래스에서 인스턴스를 생성할 수 없습니다. 따라서 추상 클래스를 상속받은 하위 클래스에서는 모든 추상 메서드를 구현하고 나서야 인스턴스를 생성할 수 있습니다.
다음은 추상 클래스를 정의하고 하위 클래스에서 해당 추상 클래스의 인스턴스를 생성하는 예제입니다.
abstract class Shape {
abstract fun calculateArea(): Double
}
class Circle(private val radius: Double) : Shape() {
override fun calculateArea(): Double {
return Math.PI * radius * radius
}
}
fun main() {
val circle = Circle(5.0)
println("Circle area: ${circle.calculateArea()}")
}
위 예제에서 Shape
는 추상 클래스로 정의되고, Circle
클래스에서 Shape
를 상속받아 calculateArea
메서드를 구현한 후에 Circle
클래스의 인스턴스를 생성합니다.