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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

匿名内部类的原理,为了解决什么问题?怎么用?

点评

尽量少问一句话式问题。最好有代码,最好有自己的想法。  发表于 2014-6-11 04:05

6 个回复

倒序浏览
匿名内部类 ;
匿名内部类一定要继承了一个类或者实现一个接口。
怎么使用匿名内部类呢?
前提:father里面有一个抽象方法method();

new father_class_name(){ //.method  前面的话就是创建了一个父类的匿名子类对象,并实现了里面的抽象方法,然后加.method
    method(){                  //调用了这个方法   把它写在外部类的方法中,然后调用外部类的方法就能调动这个method了。
s.o.p(“。。。。”);
}
} .method;
给这个匿名子类对象起名字 father_class_name XX=【这里写你创建的匿名子类对象,就是上面那一串代码】(也就是多态,所以不能调用父类中没有的方法,匿名内部类没有名字没法强转。)然后XX。method1;XX。method2;技能调用不同的方法了。


后面GUI那里就有匿名内部类的应用,用起来方便

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
省去命名,简化代码,但只能使用一次,用不用 就视情况而定了。使用条件是必须继承一个类或者实现一个接口
回复 使用道具 举报
这个或许只有敲足够多类似代码才能有所体会吧,至少我现在还没很好了解,暂时只知道类在定义后马上要用到时使用内部类
回复 使用道具 举报
匿名内部类是多态的体现,通过父类引用创建子类对象,那么匿名内部类必须有一个前提:继承一个类或实现一个接口。通过这个类或接口引用来创建匿名内部类对象实例然后直接使用。这样可能省去单独创建内部类对象的过程,简化了代码。但是匿名内部类实例只能使用一次,如果想要调用多个匿名内部类的方法,就要创建多次匿名内部类,每次创建匿名内部类时都必须要覆盖父类中的所有抽类方法或接口中的所有方法,如果父类或接口中的方法较多的话,这样反而使代码复杂,所以匿名内部类的父类或需要实现的接口中的方法一般不超过3个。
回复 使用道具 举报
在接口中方法一般不超过三个的时候,是哦用匿名内部类做为参数传递.省去了类实现接口时候的生成.class文件.简化了过程.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马