本帖最后由 hejinzhong 于 2014-7-11 21:17 编辑
interface Inter // 定义了一个接口Inter
{
void method();
}
class Test
{
public static Inter function
{
return new Inter()
{
这里自己覆写父类中method
};
}
}
class InnerClassTest
{
public static void main(String[] args)
{
Test.function().method();
}
}
分析:在主函数中(Test.function().method();)这句话可以看出,method()方法被调用,而method存在与Inter接口中,所以要使用该方法,必须建立他的子类才可以调用。所以Test.function()的运行结果是个Inter子类类型的类类型数据,而且直接通过Test类名调用了Test内部的function函数,所以function函数是static。
这样的话就可以写出:
class Test
{
static Inter的子类名 function()
{
return new inter的子类;//因为接口不能直接创建对象,只能有子类实现后才可以.
}
}
因为这里InnerClassTest 类的主函数只调用一次method,所以可以通过匿名内部类解决,简化代码.
怎么创建匿名内部类,你看看前面概念视频和格式就OK |