==========Accessor.java===========================
package access;
public class Accessor{
private void private_element(){}
void packaged_element(){}
protected void protected_element(){}
public void public_element(){}
void test(){
private_element();
packaged_element();
protected_element();
public_element();
}
//same class,must same package and non-subclass
public static void main(String[] args){
Accessor acsr=new Accessor();
acsr.private_element();
acsr.packaged_element();
acsr.protected_element();
acsr.public_element();
}
}
class SamePackSub extends Accessor{
void test(){
//@private_element();
packaged_element();
protected_element();
public_element();
}
public static void main(String[] args){
Accessor acsr=new Accessor();
//@acsr.private_element();
acsr.packaged_element();
acsr.protected_element();
acsr.public_element();
}
}
class SamePackNonSub{
public static void main(String[] args){
Accessor acsr=new Accessor();
//@acsr.private_element();
acsr.packaged_element();
acsr.protected_element();
acsr.public_element();
}
}
===========Accessor2.java==============================
import access.Accessor;
class DifferPackSub extends Accessor{
void test(){
//@private_element();
//@packaged_element();
protected_element();
public_element();
}
public static void main(String[] args){
Accessor acsr=new Accessor();
//@acsr.private_element();
//@acsr.packaged_element();
//@acsr.protected_element();
acsr.public_element();
}
}
class DifferPackNonSub{
public static void main(String[] args){
Accessor acsr=new Accessor();
//@acsr.private_element();
//@acsr.packaged_element();
//@acsr.protected_element();
acsr.public_element();
}
}
=======================================
访问权限修饰词有两个含义
可见性:函数在子类中是否可见
可访问性:函数是否可以通过类的对象访问
[-----------------context type---------------][-------------accessible---------------][-------------visible------------------]
[in-same-class][in-same-package][sub-class][private][packaged][protected][public][private][packaged][protected][public]
v----------v----------x----------v----------v----------v----------v----------v----------v----------v----------v
x----------v----------v----------x----------v----------v----------v----------x----------v----------v----------v
x----------v----------x----------x----------v----------v----------v----------NA----------NA----------NA----------NA
x----------x----------v----------x----------x----------x----------v----------x----------x----------v----------v
x----------x----------x----------x----------x----------x----------v----------NA----------NA----------NA----------NA