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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

匿名内部类的使用注意,在什么地方会用到?

3 个回复

倒序浏览
当一个方法的形参是一个接口时,要想调用该方法,
可以创建一个具体的类实现这个接口,然后将这个实现类的对象传入该方法
也可以可以通过匿名内部类实现,即将“new 父类或者接口( ){定义子类重写内容}”传入该方法
new 父类或者接口( ){定义子类重写内容}其实就是实现这个接口的一个子类对象
回复 使用道具 举报
本帖最后由 Darkhorse′Xa 于 2014-7-10 10:36 编辑

一开始是感觉挺模糊的,如果感觉还不是太理解可以去一些博客看一下匿名内部类的文章.其实不用想的太复杂.
运用:只需要用到一次类的时候写的,也就是说你如果你这个类只需要被使用一次,那么就不需要去定义.可以直接使用匿名内部类.
new 父类()接口()
{
   //类当中定义的方法,或者重写
}//在这可以调用定义方法

在举个例子
  1. abstract class Person{
  2. public abstract void sayHi();
  3. }

  4. class Student extends Person{
  5. public void sayHi(){
  6.   System.out.println("Hello");
  7. }
  8. }
  9. /*如果说我要使用这个sayHi方法,我就需要写这么一个子类继承这个Person父类,创建子类对象去调用sayHi方法(匿名内部类前提是必须要有继承或者接口).但是我觉得这样太麻烦,因为这个类我只需要使用一次,就是用sayHi方法..那么我就可以这么写:*/

  10.         new Person(){
  11.                         public void sayHi(){
  12.                                 System.out.println("Hello");
  13.                         }
  14.                 }.sayHi();

  15. /*而那个Student的类就可以不需要了*/
复制代码



点评

谢谢~回答的很详细。学习了~  发表于 2014-7-10 11:43
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马