@startuml
skinparam style strictuml

class A {
name
}

class B {
val
getVal()
	
}

interface C {
calculate()
}

class D {
calculate( B b)
calculate()
}

A  -|> B
D ..|> C
D -> A
A -> "*" C
D ..> B
@enduml