@startuml

interface CircleBlock {
    + area(): double
}

class Toy {
    - circleBlock: CircleBlock

    + setCircleBlock(CircleBlock): void
    + play(): void
}

class SquareBlock {
    - width: int

    + SquareBlock(int: width)
    + getWidth(): int
    + getArea(): int
}

class BlockAdapter {
    + BlockAdapter(int: width)
    + area(): double
}

CircleBlock <-- Toy
CircleBlock <|.. BlockAdapter
SquareBlock <|-- BlockAdapter

@enduml
