/*
* 权限修饰符:
public(公共) 当前类,相同包下不同的类,不同包下的类
protected(受保护) 当前类,相同包下不同的类,不同包下的子类
default(默认) 当前类,相同包下不同的类
private(私有) 当前类
default:当前包下使用
protected:让子类对象使用
*/
public class PermissionsDemo { public void publicMethod() { System.out.println("publicMethod"); } void defaultMethod() { System.out.println("defaultMethod"); } private void privateMethod() { System.out.println("privateMethod"); } protected void protectedMethod() { System.out.println("protectedMethod"); } public static void main(String[] args) { PermissionsDemo p = new PermissionsDemo(); p.publicMethod(); p.protectedMethod(); p.defaultMethod(); p.privateMethod(); } }
输出
2.不同类私有方法报错
3.不同包除了public都报错,使用继承父类后子类可以使用受保护的方法,如下PermissionsDemo2案例
package day26_package包.权限测试2; import day26_package包.权限测试.PermissionsDemo; public class PermissionsDemo2 extends PermissionsDemo { public void fun() { super.publicMethod(); super.protectedMethod(); } public static void main(String[] args) { PermissionsDemo2 p = new PermissionsDemo2(); p.fun(); } }
输出