在子类上实现一个新的接口'继承了AbstractMap.SimpleEntry?

时间:2014-04-03 19:50:23

标签: java

鉴于,

public class XHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V> {
 //impl
}

我想继承XHashMap并让其继承的SimpleEntry内部类实现一个新的接口Y

那么在这个明显的代码之后我该怎么做

public class MyXHashMap<K,V> extends XHashMap<K,V> {
    // over-ride to affect outer My intent
    // see below re: questions of My inner intent
}

正确(在Java中)然后影响

的内部等价物
MyXHashMap.SimpleEntry<K,V> implements Y {
    //impl of Y

}

...

1 个答案:

答案 0 :(得分:2)

AbstractMap.SimpleEntry是一个公共静态类,因此您可以像扩展其他类一样扩展它。您可能希望将新类设置为静态,这样您就可以在MyXHashMap之外创建它的实例。

class MyXHashMap{

    ...

    @Override
    public Set<Entry<K,V>> entrySet(){
      //override entrySet() to use your Entry class


    }


    static class MySimpleEntry<K,V> extends AbstractHashMap.SimpleEntry<K,V> implements Y {

       public MySimpleEntry(K key, V value){
           super(key,value);
       }
       ...
    }



}