java中的继承行为

Nul*_*ter 2 java oop inheritance

任何人都可以解释,为什么这在eclipse中显示错误,但运行成功没有任何错误.我已粘贴下面的代码.

家长班:

public class Parent {
    /*Parent class method*/
    public void show() { 
        System.out.println("Parent class show called");
    }
}
Run Code Online (Sandbox Code Playgroud)

儿童班:

public class Child extends Parent {
    /* Child class overridden method*/  
    private void show() { 
        // this line show error in eclipse
        System.out.println("Child class show called ");
    }

    public static void main(String[] args) {
        Parent p = new Child();
        p.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

OutPut是:父类显示调用

Jen*_*ens 5

您不能通过继承来降低方法的可见性.

因此,子类中的可见性必须public不是private.

public class Child extends Parent{
/* Child class overridden method*/  
 public void show(){ // this line show error in eclipse
     System.out.println("Child class show called ");

 }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Parent p = new Child();
        p.show();

    }

}
Run Code Online (Sandbox Code Playgroud)

  • @SantoshSingh你可能在添加错误之前运行了一个旧的编译代码 (4认同)