小编And*_*dTa的帖子

使用限制性更强的访问修饰符覆盖方法

我想知道:为什么重写方法不能具有比重写方法更严格的访问修饰符?

例如:

class Animal{
    public void eat(){
        System.out.println("Generic Animal Eating Generically");
    }
}

class Horse extends Animal{
    public void eat(){
        System.out.println("Horse eating hay, oats, and horse treats");
    }
}
Run Code Online (Sandbox Code Playgroud)

在Horse类中,为什么我不能像这样编写代码:

private void eat(){
    System.out.println("Horse eating hay, oats, and horse treats");
}
Run Code Online (Sandbox Code Playgroud)

要么

protected void eat(){
    System.out.println("Horse eating hay, oats, and horse treats");
}
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
1
解决办法
488
查看次数

标签 统计

java ×1