class A : Cloneable { constructor() /* primary */ { super/*Any*/() /* () */ } } interface I : Cloneable { } class C : I { constructor() /* primary */ { super/*Any*/() /* () */ } } class OC : I { constructor() /* primary */ { super/*Any*/() /* () */ } protected override fun clone(): OC { return OC() } }