您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中,当你重写一个方法时,你不能扩大方法的访问权限。这意味着如果你在一个父类中有一个受保护的方法(protected),那么在子类中重写这个方法时,你不能将其改为公共的(public)。但是,你可以将访问权限保持不变或者减少访问权限。
以下是一些示例:
public
,那么子类重写时也必须是public
。class Parent {
public void foo() {
// ...
}
}
class Child extends Parent {
@Override
public void foo() { // 必须是public
// ...
}
}
protected
,那么子类重写时可以是protected
或者private
。class Parent {
protected void foo() {
// ...
}
}
class Child extends Parent {
@Override
protected void foo() { // 可以是protected
// ...
}
// 以下代码会编译错误,因为不能扩大访问权限
// private void foo() {
// // ...
// }
}
default
(没有修饰符),那么子类重写时只能是default
或者private
。class Parent {
void foo() {
// ...
}
}
class Child extends Parent {
@Override
void foo() { // 可以是default
// ...
}
// 以下代码会编译错误,因为不能扩大访问权限
// private void foo() {
// // ...
// }
}
总之,重写方法时,子类方法的访问修饰符不能比父类方法的访问修饰符更宽松。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。