@startuml interface Displayable { + Display(): void } class Library { - items: []Displayable + NewLibrary(): Library + AddItem(item: Displayable): void + DisplayItems(): void } package "items" { class Magazine { - Title: string - PublishedAt: string + NewMagazine(t: string, p: string): Magazine + Display(): void } class Book { - Title: string - Author: string + NewBook(t: string, a: string): Book + Display(): void } } Book ..|> Displayable Magazine ..|> Displayable Library ..> Displayable : uses @enduml