简体   繁体   English

Java。 覆写方法

[英]Java. Override method

public class MyMap extends LinkedHashMap<String, Serializable>
{
    @Override
    public Serializable get(String key)
    {
        return null;
    }
}

error: method does not override or implement a method from a supertype 错误:方法未覆盖或从超类型实现方法

Remove the @Override annotation. 删除@Override注释。 That will fix the error. 这样可以修复错误。

Keep in mind that if you actually want to override some parent method, this is not what you want to do. 请记住,如果您实际上要覆盖某些父方法,那么这不是您想要做的。 Instead, look for possible typos, error or type mismatch in your get method. 相反,请在get方法中查找可能的错字,错误或类型不匹配。

In your case, you probably want: 就您而言,您可能想要:

@Override
public Object get(Object key)
{
    return null;
}

The signature of get is public V get(Object key) get的签名是public V get(Object key)

So you need to change the parameter type to Object instead of String . 因此,您需要将参数类型更改为Object而不是String

The method you're trying to override has the following signature: 您尝试覆盖的方法具有以下签名:

public Serializable get(Object key);

To override it, your method's argument therefore has to be of type Object , not String : 要覆盖它,方法的参数因此必须是Object类型,而不是String类型:

public class MyMap extends LinkedHashMap<String, Serializable>
{
    @Override
    public Serializable get(Object key)
    {
        return null;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM