黑马程序员技术交流社区

标题: 关于匿名类询问知识点 [打印本页]

作者: date1130    时间: 2014-10-9 07:44
标题: 关于匿名类询问知识点
interface Inter

       void method();

class Test

      //创建匿名类,补足代码.


public static void main(String[] args)
{
      Test.function().method();
}

在毕老师的视频当中讲到匿名类的时候,给留的一道练习,Test.function().method();

这句话能带来什么呢?Test.function().的运算结果是代表着一个静态的方法Function被Test以类名.静态方法的方式调用。那么毕老师说Test.function().的运算结果还可以调用method抽象方法,那么运算结果肯定是一个对象而且还是Inter类型的对象,只有Inter类型的对象才可以调用method方法。那么static XXXX function{}返回值的类型必然是Inter类型。这个调用method方法,我有点迷糊,是因为我前面哪一点没有学好呢?
作者: darkads    时间: 2014-10-9 09:54
Test.function().method();这句话包含了两种方法的调用
1.静态方法:使用static关键字限定,调用方式:类名.方法名,Test.function()就表明了function()方法是一个静态方法
2.非静态方法:没有static关键字,是一个对象方法,需要new一个对象来调用,而method()就是一个非静态方法,那么必须要有一个实现了Inter接口的对象来调用
所以function()方法必须返回一个实现立刻Inter接口的对象
  1. static Inter function{
  2.     return new MyInter();
复制代码






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2