|
|
inner class的向上转型 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
inner class的向上转型 当把一个inner class对象向上转型成为interface时,我们得到的只是一个reference。 interface Destination{ String readLabel(); } interface Contents{ int value(); } class Parcel3{ private class PContents implements Contents{ private int i = 11; public int value() { return i; } } protected class PDestination implements Destination{ private String label; PDestination(String whereTo){ label = whereTo; } public String readLabel() { return label; } } public Destination to(String s){ return new PDestination(s); } public Contents cont(){ return new PContents(); } } public class ExplicitStatic{ public static void main(String[] args){ Parcel3 p = new Parcel3(); //把inner class对象向上转型 Contents c = p.cont(); Destination d = p.to("Borneo"); } }
虽然我们不能在ExplicitStatic class无法调用Pcontents class,但我们把一个Pcontents class对象向上转型为Contents,就可对之进行调用。
|
|
相关文章:相关软件: |
|