@startuml class-sample

'!include http://plantuml.oss.manerfan.com/core.puml
' uncomment the following line and comment the first to use locally
!include core.puml
'!include http://plantuml.oss.manerfan.com/class-diagram-helper.puml
' uncomment the following line and comment the first to use locally
!include class-diagram-helper.puml


GREEN_ARROW()

abstract class BaseClass {
    +  AbstractMethod() : void
    #  VirtualMethod(s:string) : int
}
class SubClass {
    + AbstractMethod() : void
    # VirtualMethod(s:string) : int
}

interface IInterfaceA {
}

interface "IInterfaceA`1"<T> {
    Value : T <<get>>
}
class ImplementClass {
    + Value : int <<get>>
}

GeneralizeBack(BaseClass, SubClass, "")
IInterfaceA <|-- "IInterfaceA`1"
"IInterfaceA`1" "<int>" <|-- ImplementClass



@enduml