Java重写两个接口,方法名称的冲突

Fra*_*fka 7 java collections overriding map implements

我实现Map<V,K>Collection<V>接口在一类,但remove(Object)发生法两种接口,therfore日食表明了我的一些错误.返回类型是不同的,一个返回boolean,另一个V但这似乎并不重要.

有没有办法告诉java/eclipse哪个方法实际被覆盖?

编辑:我有一个所有值必须实现的接口,它使用getKey()方法提供值,从而可以为地图编写添加函数.但似乎没有办法让这一个类同时看作地图和集合?

Jac*_*ack 8

不,没有直接的方法.

实际上,动态绑定会考虑不包括返回类型的签名,因此Java编译器不能为具有相同签名但返回类型不同的同一类接受这两种方法.如果两个方法具有相同的名称和相同的参数,那么它们也必须具有相同的返回类型,不幸的是你.

唯一的方法是将行为分成两个不同的类并组成它们.也许是类似的方法Collection<V> asCollection()或类似的方法.