黑马程序员技术交流社区

标题: 匿名内部类 [打印本页]

作者: 小菜鸟啊    时间: 2014-1-15 22:13
标题: 匿名内部类
说一下匿名内部类的用法。。。之前自学的东西发现好多不会的,弄得不太明白的。
作者: 银酱    时间: 2014-1-15 22:22
我今天也刚学到内部类内部类,还没总结
大概是:
必须是继承一个类或者接口
然后形式就是new 类名(){};说白了就是匿名重写。
好处的话就是方便吧,但局限也有的,比如继承或实现的方法要少。
不知道对不对~{:soso_e141:}
作者: 黄晓鑫    时间: 2014-1-15 22:31
所谓的匿名内部类就是在类中定义了一个类 也就是类中还有类 一个类的修饰符跟成员方法一样 这个类的名字其实就是用的是父类的名字创建对象 通常用法就是描述事物的时候事物非常复杂 事物本身还嵌套着事物 就会用到内部类  而内部类为了简单就不给类定义名字 匿名内部类就是内部类的简写格式
作者: xu6148152    时间: 2014-1-15 22:38
匿名内部类
  1,匿名内部类其实就是内部类的简写格式
  2,定义匿名内部类的前提
  内部类必须是结成一个类或者实现接口
  3,匿名内部类的格式:new 父类或者接口(){定义子类的内容}
  4,其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖,可以理解为
  带内容的对象。
  匿名内部类中定义的方法最好不要超过3个。
  匿名类相当于把父类的覆盖方法直接在匿名对象当中实现。而不需要指定子类来实现
  当没有父类或者接口时,可以使用Object类来创建匿名对象

其实匿名类主要是节省代码,它可以用纯继承来或者实现来代替。
作者: 大大老伴要跪IT    时间: 2014-1-15 22:41
首先匿名内部类是定义在方法中的没有名字的内部类!格式是new 类或接口名(){}
明确的是new出来的都是对象,没错吧。所以匿名内部类的本质是继承了类或实现了父接口的匿名的子类对象。当看到传递的参数是类或接口类型的时候,我们就可以考虑使用匿名内部类。
作者: 贺利英    时间: 2014-1-15 22:57
当定义的事物里还有事物,而此内部的事物又用到外部事物的内容时,就使用内部类的,而用匿名内部类是内部类的简写形式,而使用匿名内部类的前提条件就是必须继承一个类或者实现一个借口。
如:new Inner()      //Inner是此内部类继承的父类或者实现的接口
        {
                public void show()    //覆写的父类或者接口的方法,对于如果是实现的是接口的话 此处是必须实现接口中的方法的。
                {
                        System.out.println("android");
                }
        };
作者: 月生春    时间: 2014-1-15 23:28


匿名内部类,就是内部类的简写格式。

必须有前提:

内部类必须继承或者实现一个外部类或者接口。

匿名内部类:其实就是一个匿名子类对象。

格式:new 父类 or 接口(){

  子类内容

  }



*/





abstract classDemo
{
   abstract void show();

}
class Outer
{
int
num = 4;



/*

class Inner extends Demo

{
void show()

{

    System.out.println("show ..."+num);
}

}

*/

public void method()
{
  //new Inner().show();

new Demo()  //匿名内部类。
  {
  void show()
{

  System.out.println("show ........"+num);

}

}.show();

}
}
class InnerClassDemo4  

{
public static void main(String[] args)  

{

new Outer().method();

}

}
作者: 小菜鸟啊    时间: 2014-1-19 20:14
感谢各位大神!




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