Java private和protected修飾的內部類呼叫方法
阿新 • • 發佈:2018-12-26
Parcel2.java
abstract class Contents{ abstract public int value(); } interface Destination{ String readLabel(); } public class Parcel2 { private class PContents extends Contents{ private int i = 11; public int value(){ return i; } } protected class PDestination implements Destination{ private String label; private PDestination(String whereTo){ label = whereTo; } public String readLabel(){ return label; } } public Contents cont(){ return new PContents(); } public Destination dest(String la){ return new PDestination(la); } /* public static void main(String[] args) { // TODO Auto-generated method stub Parcel2 p = new Parcel2(); Contents c = p.cont(); Destination d = p.dest("lalala"); System.out.println(d.readLabel() + c.value()); } */ }
Test.java
public class Test {
public static void main(String[] args){
Parcel2 p = new Parcel2();
Contents c = p.cont();
Destination d = p.dest("lalala");
System.out.println(d.readLabel() + c.value());
}
}
執行結果:
Parcel2註釋裡面的程式碼是可以成功執行的。
Test也是可以成功執行的。(通過public 方法呼叫private和protected類)。
普通類(非內部類)不可設為private或protected,只允許是public或“友好的”。