Skip to content

Instantly share code, notes, and snippets.

class Square {
type = "Square" as const
constructor(public side: number) {}
}
class Circle {
type = "Circle" as const
constructor(public radius: number) {}
}
class Rectangle {
type = "Rectangle" as const
class Shape {
constructor() {
this.type = this.constructor.name
}
}
class Square extends Shape {
constructor(side) {
super()
this.side = side
}
interface Shape {
fun area(): Double
fun perimeter(): Double
}
class Square(val side: Double) : Shape {
override fun area() = side * side
override fun perimeter() = 4 * side
}
class Circle(val radius: Double) : Shape {
override fun area() = radius * radius * Math.PI
sealed class Shape
class Square(val side: Double) : Shape()
class Circle(val radius: Double) : Shape()
class Rectangle(val width: Double, val height: Double) : Shape()
fun main() {
val shapes = listOf(
Square(5.0),
Circle(4.0),
Rectangle(6.0, 7.0)