100天代码提升计划-第24天
四种权限修饰符
public>protected>()>
| public |
protected |
default |
private |
|
| 同一个类 | Y | Y | Y | Y |
| 同一个包 | Y | Y | Y | N |
| 不同包子类(继承) | Y | Y | N | N |
| 不同包非子类 |
一、同一个包代码
package Modification; public class SameClass { public int num=10; protected int num1=10; int num2=10; private int num3=10; public void method(){ System.out.println(num);//10 System.out.println(num1);//10 System.out.println(num2);//10 System.out.println(num3);//10 } }
结论:同一个类四种权限修饰符都可以调用
二、同一个包
代码
package Modification; public class Samepackage { public void methodsamepackage(){ System.out.println(new SameClass().num);//public成功 System.out.println(new SameClass().num1);//protected成功 System.out.println(new SameClass().num2);//default成功 //System.out.println(new SameClass().num3);//private失败 } }
结论:private失败其余三个成功
三、不同包子类(继承)
代码
package DifferentPackage; import Modification.SameClass; public class Different extends SameClass { public void method(){ System.out.println(super.num);//public成功 System.out.println(super.num1);//protected成功 //System.out.println(super.num2);//default失败 //System.out.println(super.num3);//private失败 } }
结论:public与protected成功,default与private失败
四、不通报非子类
代码
package DifferentPackage; import Modification.SameClass; public class Strange { public void method(){ System.out.println(new SameClass().num);//public成功 //System.out.println(new SameClass().num1);//protected失败 //System.out.println(new SameClass().num2);//default失败 //System.out.println(new SameClass().num3);//private失败 } }
结论:public成功,protected,default与private失败

浙公网安备 33010602011771号