温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java Override重写时子类方法权限如何设置

发布时间:2025-04-30 04:39:35 来源:亿速云 阅读:129 作者:小樊 栏目:编程语言

在Java中,当子类重写父类的方法时,子类方法的访问权限不能比父类方法的访问权限更严格。换句话说,子类方法的访问权限可以是相同的,或者更宽松,但不能更严格。

以下是Java访问权限的顺序,从最严格到最宽松:

  1. private
  2. 默认(无关键字)
  3. protected
  4. public

当你在子类中重写一个方法时,请遵循以下规则:

  • 如果父类方法是public,那么子类方法也必须是public。
  • 如果父类方法是protected,那么子类方法可以是protected或public,但不能是private。
  • 如果父类方法是默认(无关键字),那么子类方法可以是默认、protected或public,但不能是private。
  • 如果父类方法是private,那么子类不能重写该方法,但可以在子类中创建一个具有相同名称的新方法。

示例:

class Parent {
    public void print() {
        System.out.println("Parent print method");
    }
}

class Child extends Parent {
    // 正确,子类方法的访问权限与父类相同
    public void print() {
        System.out.println("Child print method");
    }
}

class Child2 extends Parent {
    // 正确,子类方法的访问权限比父类更宽松
    protected void print() {
        System.out.println("Child2 print method");
    }
}

class Child3 extends Parent {
    // 错误,子类方法的访问权限比父类更严格
    private void print() {
        System.out.println("Child3 print method");
    }
}

在上面的示例中,ChildChild2类正确地重写了父类的print方法,而Child3类试图将访问权限设置为private,这是不允许的。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI