今天沒有上課,但是還要過來,真是過水。
在《java編程思想》上看了個關于內部類的例子,感覺很有意思,自己打出來,作了些注釋,加深理解記憶。
//聲明接口Ia
interface Ia
{
int a();
}
//聲明接口Ib
interface Ib
{
String b();
}
//聲明類,在其中聲明內部類實現上兩個接口
class Test
{
//內部類 a 實現接口Ia
private class a implements Ia
{
private int value = 11;
public int a()
{
return value;
}
public String a2()
{
return "a2()";
}
}
//內部類 b 實現接口Ib
protected class b implements Ib
{
private String value = "b";
public String b()
{
return value;
}
public String b2()
{
return "b2()";
}
}
//Test類的方法 返回一個a接口對象
//用戶不能從該對象向下轉型,也就是不知道它向下是a類型
public a getIa()
{
return new a();
}
public b getIb()
{
return new b();
}
}
public class TestParcel
{
public static void main(String[] args)
{
Test test = new Test();
Ia ia = test.getIa();
System.out.println(ia.a());
//ia不能訪問a類實現Ia接口以外的擴張方法
//ia.a2();
Ib ib = test.getIb();
System.out.println(ib.b());
//ib.b2();
//Test.a ia = test.new a();
}
}
也許java的類庫有的就是這種實現,我們可以通過某個類的方法得到某個接口的實例。^_^