黑马程序员技术交流社区
标题:
关于匿名内部类练习中的一点疑惑
[打印本页]
作者:
我为你着迷
时间:
2014-6-13 22:33
标题:
关于匿名内部类练习中的一点疑惑
本帖最后由 我为你着迷 于 2014-6-13 22:43 编辑
interface Inter
{
void method();
}
class Test
{
static Inter function()
{
return new Inter
{
public void method()
{
System.out.println("method run");
}
};
}
}
class InnerClassTest
{
public static void main(String[] args)
{
Test.function.method();
}
}
复制代码
大家好,就是毕老师说只有Inter对象才可以调用method方法,对于这句话我很不理解。我有2点疑惑:
第一个就是为什么只有Inter才可以调用method这个方法呢?请问这个有原因吗?
第二个就是咱搞个类去实现Inter然后创建子类对象不也可以调用method方法嘛,为什么毕老师说只要inter这一个呢?
说白了,我就是想知道为什么返回值类型是inter呢?转不过弯啦,都给我搞蒙了。麻烦仁兄们忙帮解答下,小的在此谢过了。
作者:
华子
时间:
2014-6-14 11:13
说实话 我感觉这个程序写错了,你定义的Inter是一个接口,无法实例化对象,求技术分啊
作者:
123_yaya
时间:
2014-6-14 11:29
第二个就是咱搞个类去实现Inter然后创建子类对象不也可以调用method方法嘛。这个是可以的。匿名内部类的存在就是为了简化代码。比如开发中你需要用到Inter接口的方法,但是又不想另外写一个子类对象,然后再用子类对象来调用method方法。你就用到匿名内部类啦。所以这个匿名内部类就返回你要一个对象,你拥有了这个对象就可以调用你想调用的方法了。
作者:
少先队员
时间:
2014-6-14 11:39
new 父类 覆盖 父类的方法 !!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2