黑马程序员技术交流社区

标题: 匿名内部类构造函数的问题 [打印本页]

作者: 张其辉    时间: 2012-12-4 22:44
标题: 匿名内部类构造函数的问题
本帖最后由 张其辉 于 2012-12-5 15:50 编辑

匿名内部类中有构造函数吗?匿名类仅仅只是创建了一个对象,但是它调用的构造函数是那个呢??构造函数必须和类名相同,而匿名内部类又没有类名,并且匿名内部类是实现了一个接口或者继承了一个父类,那就是说他一定有个构造函数中间有super()语句访问了父类的构造函数,那么它创建的对象时是用那个构造函数呢??求解释
作者: 新立    时间: 2012-12-4 23:15
自己写一个匿名内部类就看出来,
作者: 魏秀盛    时间: 2012-12-4 23:59
本帖最后由 魏秀盛 于 2012-12-5 00:02 编辑

由于构造器的名字必须与类名相同,而匿名内部类没有类名,所以匿名内部类不能有构造函数,取而代之的是,将构造器参数传递给超类(superclass)构造器,尤其是在内部类实现接口的时候,不能有任何构造函数,不仅如此,还要像下面这样提供一组括号:
new InterfaceType()
   {
      methods and data
    }
给你一个代码例子看看,请看下面:
Person queen=new Person("Mary"); //实例化一个Person类对象
Person count=new Person("Dracula"){...};//构造一个扩展(继承)了Person类对象的匿名内部类




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