work064.java
package test04;
interface OutInterface1
{
public void func();
}
public class work064
{
public static void main(String[] args)
{
OuterClass2 c2 = new OuterClass2();
OutInterface1 face1 = c2.doIt();
face1.func();
//内部类实现接口,外部类写个方法,返回内部类的实例对象,然后使用接口,可以直接调用内部类的方法
OuterClass3 c3 = new OuterClass3();
OutInterface1 face2 = c3.doIt();
face2.func();
}
}
class OuterClass2
{
private class InnerClass2 implements OutInterface1 //注意此处内部类定义为private
{
InnerClass2(String s)
{
System.out.println(s);
}
public void func()
{
System.out.println("访问内部类中的func方法");
}
}
public OutInterface1 doIt()
{
return new InnerClass2("访问内部类构造方法");
}
}
class OuterClass3 extends OuterClass2
{
public OutInterface1 doIt()
{
return super.doIt();
}
}