首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的接口方法不能被重写?

为什么我的接口方法不能被重写?
EN

Stack Overflow用户
提问于 2016-07-28 12:56:01
回答 3查看 189关注 0票数 1

我正在尝试实现这样的接口:

代码语言:javascript
运行
复制
public interface Human{

    void talk();
}



public class Ame implements Human{

    public static void talk(){
        System.out.println("Speak English");
    }
}



public class Chin implements Human{

    public static void talk(){
        System.out.println("Speak Chinese");
    }
}


public class test {

    public static void main(String[] args){

        Chin c = new Chin();
        c.talk();
        Ame a = new Ame();
        a.talk();
} 
}

但它会显示错误:

Ame和Chin talk()无法实现Human talk()。

代码语言:javascript
运行
复制
                 Methods is overridden as static . 

请告诉我为什么会发生这种情况,以及如何修复这个错误。

EN

Stack Overflow用户

发布于 2016-07-28 13:05:37

不能以这种方式从静态方法引用非静态接口。本质上,静态方法是可以直接访问的方法,而不需要重新创建本地重复对象,但不能以相同的方式修改它的值。真的,这个问题的解决方案很简单。从覆盖talk()方法中删除静态修饰符

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38627378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档