Abstract Class 를 통해서 알아야 할 것 : 여러 클래스를 한 타입으로 묶어주어서 공통되는 메버를 상속받는 모든 클래스에 전파하는 용도로 쓰는 클래스이다.

open class Polygon {
    open fun draw() {}
}

abstract class Rectangle : Polygon() {
    abstract override fun draw()
}

class Triangle : Rectangle() {
    override fun draw() {
        println("3")
    }
}

class Square(private val innerSquare: Int) : Rectangle(){
    override fun draw() {
        println("square class")
    }
}
0