今天没有上课,但是还要过来,真是过水。
在《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的类库有的就是这种实现,我们可以通过某个类的方法得到某个接口的实例。^_^