首先我们建立一个包testpackage1
建立一个类 person,并设置一些不同访问权限的属性和方法
属性/方法 访问权限 id public age private getId() protected getAge() public setId() default
package testpackage1;
public class person {
public int id;
private int age;
protected int getId ( ) {
return id;
}
public int getAge ( ) {
return age;
}
void setId ( int id) {
this . id = id;
}
}
class tutor extends person {
}
在本类中person对象可以访问的属性/方法
修饰符 在本类中person对象可以访问的属性/方法 public 是 private 是 protected 是 default 是
在同包的子类/非子类中person对象可以访问的属性/方法
修饰符 在同包的子类/非子类中person对象可以访问的属性/方法 public 是 private 否 protected 是 default 是
在不同包的子类/非子类的person对象可以访问到的属性/方法
修饰符 在不同包的子类/非子类的person对象可以访问到的属性/方法 public 是 private 否 protected 否 default 否
同包的子类teacher可以访问到的属性/方法
修饰符 同包的子类teacher可以获得的属性/方法 public 是 private 否 protected 是 default 是
不同包的子类student可以访问到的属性/方法
修饰符 不同包的子类的对象可以访问到的属性/方法 public 是 private 否 protected 是 default 否
总结
对于一个类person,这个person类的对象在本类访问person的属性和方法,在同包的类中访问person的属性和方法,在其他包的类中访问person的属性和方法的结果如下图
person对象可以访问到的权限
权限 person对象在person类中访问person类的属性方法 person对象在本包的其他类中访问person类的属性方法 person对象在其他包的类中访问person的属性和方法 public 是 是 是 protected 是 是 否 default 是 是 否 private 是 否 否
person类的子类可以继承到的属性和方法
权限修饰符 同包子类 不同包子类 public 是 是 protected 是 是 default 是 否 private 否 否