黑马程序员技术交流社区

标题: 匿名内部类,到底是个啥? [打印本页]

作者: xdy0618    时间: 2016-1-28 14:10
标题: 匿名内部类,到底是个啥?
学完直接懵比了
作者: 梁志斌    时间: 2016-1-29 02:14
就是没有名字的内部类,该类对象只使用一次时就可以定义,前提:必须实现接口或者继承一个类
BufferReader br = new BufferReader(new InputStreamReader(。。。。))
new InputStreamReader(。。。。)可以看做是匿名的内部类,其实学到这里,你以前都用过很多次了,只是你不注意罢了
作者: sss1234hhh    时间: 2016-1-29 08:53
如楼上所说匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写,但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
作者: Mayer    时间: 2016-1-29 09:49
匿名内部类就是直接用父类或接口一次性的创建的子类对象
作者: 阿蛮    时间: 2016-1-29 16:11
这点我也蒙,不过用的也不算特别多
作者: 刺客015    时间: 2016-1-29 16:56
interface A {  public void fun1(); }class B {  int i = 10; public void get(A a)// 声明了一个方法get,接受一个类型为A的参数  {   a.fun1();  } public void test()  {  this.get(new A()//这里就是匿名的内部类,实现了A这个接口的类,只是是匿名的,编译的时候会自动生成一个类名为B$1的类,这一点你可以用cmd手动编译一下,就能看见B$1.class这样一个文件,相当于你有一个B$1的类实现了A这个接口,然后作为get的参数传了进去   {    public void fun1()    {     System.out.println(i);    }   });  } }class TestNonameDemo {  public static void main(String args[])  {   B b = new B();   b.test();  } }




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