// a包 public class Student{ public void eat(){ System.out.println("喫飯"); super.action(); } private void exam(){ System.out.println("學生在考試"); } protected void cadre(){ System.out.println("競選幹部"); } void study(){ System.out.println("學習"); } } // b包 public class XiaoMing extends Student { public XiaoMing() { super.cadre(); super.action(); // 不同包調用protected只能在子孫類中 new 基類的子孫類().protected方法(); } } // b包 public class MyClass { public static void main(String[] args) { new XiaoMing().cadre(); // 因爲MyClass類和People類不同包所以xiaoMing的實例不可以調用protected方法 } }
protected、default同包下和public並無區別,default只能在同包下訪問