*/ interface Figure { public fun getVerticesCount() : Int; public fun getSquare() : Int; } open class Rectangle : Figure { override fun getVerticesCount() : Int { return 4 } override fun getSquare() : Int { return 12 } } class Square : Rectangle() { override fun getSquare() : Int { return 10 } } class Triangle : Figure{ override fun getVerticesCount() : Int { return 3 } override fun getSquare() : Int { return 9 } } fun sumOfS (figures : Array<Figure>) : Int { var result : Int = 0 for (figure in figures) { result += figure.getSquare() println (figure.toString()) } return result } fun main () { var array = arrayOf<Figure>(Square(), Triangle () ) array +=Rectangle() var square : Rectangle = Square() println(square.getVerticesCount()) println(square.getSquare()) //println(sumOfS(array)) }