public成员可被任何类访问,protected仅限同类、同包或子类继承访问,跨包非子类不可访问。

public 和 protected 是 Java 中的两个访问修饰符,它们控制类成员(字段、方法、构造器等)的可见范围。主要区别在于访问权限的宽窄和适用场景。
com.example.Parent:
package com.example;
public class Parent {
public void doPublic() { }
protected void doProtected() { }
}com.test 中有一个子类:
package com.test;
import com.example.Parent;
public class Child extends Parent {
public void test() {
doPublic(); // 可以访问,public 允许
doProtected(); // 可以访问,因为是子类
}
}com.test 中一个不相关的类:
package com.test;
public class Unrelated {
public void test() {
Child child = new Child();
child.doPublic(); // 可以访问
child.doProtected(); // 编译错误!即使在同一包也不行(Child 继承了但外部调用受限)
}
}Unrelated 和 Child 在同一包,但 doProtected() 是从父类继承来的,且不在同一个包中定义,所以不能直接通过对象调用。
以上就是在Java中public和protected的区别是什么的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号