A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lhwinner 中级黑马   /  2015-5-24 14:23  /  766 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

匿名内部类为什么不能创建构造函数?如果不能创建构造函数,为什么会在定义一个匿名内部类的时候会自动创建一个实例对象,而这个实例对象到底是哪个类的实例?

4 个回复

倒序浏览
本帖最后由 pvbj0314 于 2015-5-24 17:31 编辑

构造函数要与类同名,无返回值类型。匿名内部类没名字,如何创建构造函数?
匿名类的句法
一个匿名类是一个表达式。匿名类表达式的句法十分像一个构造函数的调用,除了多一个包含类定义的“{}”。
匿名类表达式由以下部分组成:

• new操作
• 一个接口名或类名,它们与匿名类的关系是被实现或被继承。
• 包含构造函数参数的“()”,注意:接口没有构造函数,因此只用一对“()”即可。
• 匿名类的定义体,在匿名类中可以声明方法,但是不能有表达式。


评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报

例子(黑体部分):
public class HelloWorldAnonymousClasses {
    interface HelloWorld {
         public void greet();
         public void greetSomeone(String someone);
    }
     public void sayHello() {
         
     HelloWorld frenchGreeting = new HelloWorld() {
            String name = "tout le monde";
            public void greet() {
                greetSomeone("tout le monde");
            }
            public void greetSomeone(String someone) {
                name = someone;
                System.out.println("Salut " + name);
            }
        };

        frenchGreeting.greetSomeone("Fred");
    }
    public static void main(String...args){
        HelloWorldAnonymousClasses myApp = new HelloWorldAnonymousClasses();
        myApp.sayHello();
     }
}

回复 使用道具 举报
学习了、、、
回复 使用道具 举报
学习了一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马