protected:对类用户来说,是private的,即无法访问;但对于任何继承于此类的导出类或其他任何位于同一包内的类来说,是可以访问的。

    1. class Villain{
    2. private String name;
    3. protected void setName(String nm){
    4. name = nm;
    5. }
    6. Villain(String name){
    7. this.name = name;
    8. }
    9. @Override
    10. public String toString() {
    11. return "I'm a Villian and my name is "+name;
    12. }
    13. }
    14. public class Orc extends Villain{
    15. private int orcNumber;
    16. public Orc(String name,int orcNumber) {
    17. super(name);
    18. this.orcNumber = orcNumber;
    19. }
    20. //Orc功能具备增加、修改的权限
    21. public void change(String name,int orcNumber){
    22. setName(name);
    23. this.orcNumber = orcNumber;
    24. }
    25. @Override
    26. public String toString() {
    27. return "Orc{" +
    28. "orcNumber=" + orcNumber +'}' + super.toString();
    29. }
    30. public static void main(String[] args) {
    31. Orc orc = new Orc("Orc",12);
    32. System.out.println(orc);
    33. orc.change("change",11);
    34. System.out.println(orc);
    35. }
    36. }
    37. //=========其他包====================
    38. /**
    39. * 仅仅有一个查看的权限
    40. */
    41. public class OrcOther {
    42. public static void main(String[] args) {
    43. final Orc orc = new Orc("orc",88);
    44. System.out.println(orc);
    45. }
    46. }