protected:对类用户来说,是private的,即无法访问;但对于任何继承于此类的导出类或其他任何位于同一包内的类来说,是可以访问的。
class Villain{
private String name;
protected void setName(String nm){
name = nm;
}
Villain(String name){
this.name = name;
}
@Override
public String toString() {
return "I'm a Villian and my name is "+name;
}
}
public class Orc extends Villain{
private int orcNumber;
public Orc(String name,int orcNumber) {
super(name);
this.orcNumber = orcNumber;
}
//Orc功能具备增加、修改的权限
public void change(String name,int orcNumber){
setName(name);
this.orcNumber = orcNumber;
}
@Override
public String toString() {
return "Orc{" +
"orcNumber=" + orcNumber +'}' + super.toString();
}
public static void main(String[] args) {
Orc orc = new Orc("Orc",12);
System.out.println(orc);
orc.change("change",11);
System.out.println(orc);
}
}
//=========其他包====================
/**
* 仅仅有一个查看的权限
*/
public class OrcOther {
public static void main(String[] args) {
final Orc orc = new Orc("orc",88);
System.out.println(orc);
}
}