@startuml scale 1.5 abstract class "Surface finie" as surfFini class "Cercle" as circ class "Rectangle" as rect class "Carre" as carr rect --|> surfFini carr --|> surfFini circ --|> surfFini class "Fractale" as fract fract : int[] pts interface "Dessinable" as dessin dessin : String tracer() rect ..|> dessin carr ..|> dessin surfFini : Float perim surfFini : int[] pts surfFini : int[] getPoints() surfFini : Float getPerim() interface "DessinableApproche" as dessinApp dessinApp : String tracerApprox() circ ..|> dessinApp fract ..|> dessinApp @enduml