Java中有关访问权限的修饰符按访问权限从高到低有:Public 、Protected、Friendly(缺省)、Private.
其中修饰成员和方法的有:这四个都能修饰成员方法。
类只有 Public Friendly 能修饰,其中缺省情况下为Friendly.
Public 修饰的类成员和方法在任何位置都可以访问,Protected和Friendly修饰的成员和方法只在同一包中可以访问(类内部本身当然也可以访问,Private修饰的成员和方法只在类内部可以访问。这里说的是用类创建对象的问题。
类的继承访问权限:
子类可以继承父类Public修饰的所有成员和方法,子类可以继承父类的所有Protected修饰的成员和方法即使子类和父类不在同一个包中,子类可以继承父类Friendly修饰的成员和方法当且仅当子类和父类在同一个包中。子类在任何情况下都不能继承父类中的Private修饰的成员和方法(即使子类是父类的内部类也不行)。
public class TestPrivate {
privateString name ="ma";
protectedString nameProtected = "I am Protcted";
classSon extendsTestPrivate{
}
publicstatic voidmain (Stringargs[]){
TestPrivatetestPrivate= newTestPrivate();
TestPrivate.Sonson = testPrivate.newSon();
System.out.println(son.nameProtected);
System.out.println(son.name()); 报错,name对于子类son并不可见,对于Private修饰的成员和方法,父类内部创建的对象可以访问,而子类即使是父类的内部类也无法继承父类的Private修饰的成员和方法
System.out.println(testPrivate.name);
}