Java中的访问控制符有哪些?
在Java中使用访问控制符修饰成员变量,方法,构造方法时

private 允许在类中访问。
default 允许在类中,同一包中访问。
protected 允许在类中,同一包中,其他包中的子类 访问。
public 只允许在所有地方访问。
**注意事项:**
如果某个类Father一个方法A是没有使用访问修饰符,那么子类Son如果是在其他包中,不能调用这个方法A。但是如果方法A是使用protected修饰的,那么在子类中可以调用。(但是不能使用父类去调用,就是不能在子类中去创建父类对象,然后用父类对象去调用。)
具体可以看看下面这个例子:
```java
package com.one;
//假设有一个Father类在包com.one下
public class Father {
void defalutTest() {}
protected void protectedMothod() {}
}
package com.two;
import com.one.Father;
public class Son extends Father {
public static void main(String[] args) {
Father father = new Father();
father.protectedMothod()//位置1.这句代码会报错,因为即便是protected修饰的方法,在其他包中的子类中,也不能用父类去调用,只能按位置2或者位置4那样去调用
Son son = new Son();
son.protectedMothod();//位置2
}
void someMethod() {
this.defaultMethod();//位置3.这句代码会报错,因为默认的方法不允许在其他包中的子类调用的
this.protectedMothod();//位置4.可以调用成功
}
}
```
公众号进入网站体验更佳

