@startuml class Property { # double price # string address + show() + clone() } class Apartment { - int rooms + show() + clone() } class Car { - string brand - int horsepower + show() + clone() } class CountryHouse { - int floors - double landArea + show() + clone() } class City { - vector + addProperty() + showAll() } Property <|-- Apartment Property <|-- Car Property <|-- CountryHouse City o-- Property @enduml