父类中的静态方法不允许子添加非静态方法?

时间:2015-08-16 07:54:41

标签: java

以下代码无法编译:

public class Child extends Parent{

    void foo() {        
    }
}

 class Parent{
    public static void foo(){}
}

为什么我不能在子类中声明非静态方法?在这种情况下不允许覆盖,因为该方法是静态的,那么为什么编译器不允许我们声明实例方法呢?

1 个答案:

答案 0 :(得分:1)

因为孩子从父母和他们自己识别foo()。因此,您无法使用当前代码创建。但是,您可以在您的孩子中声明新的foo(),如下所示:

![Alt Text](url)

此处有更多详细信息:您可以在子类中编写一个新的静态方法,该方法与超类中的签名具有相同的签名,从而隐藏它http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html