class Parent {} class Child extends Parent {} interface I { public function test():T; } class C implements I { public function test():T { return null; } } function main() { }