class C { public foo(x: any) { return x; } private x = 1; } interface I extends C { other(x: any): any; } class D2 implements I { public foo(x: any) { return x } private x = 3; other(x: any) { return x } }