-
Bug
-
Resolution: Fixed
-
P2
-
None
-
Verified
In JLS 7, interface methods and static methods with override-equivalent signatures can both be inherited; this causes an error (8.4.8.4).
class C { static void m() {} }
interface I { void m(); }
class D extends C implements I {} // error
In the Lambda Spec, the interface method is not inherited, so the rule in 8.4.8.4 does not apply. Instead, the restriction that a static method cannot hide an instance method (8.4.8.2) needs to be extended to include _inherited_ static methods.
class C { static void m() {} }
interface I { void m(); }
class D extends C implements I {} // error
In the Lambda Spec, the interface method is not inherited, so the rule in 8.4.8.4 does not apply. Instead, the restriction that a static method cannot hide an instance method (8.4.8.2) needs to be extended to include _inherited_ static methods.