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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nxp1986 中级黑马   /  2014-6-17 18:13  /  1398 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看到匿名内部类的时候完全没明白,肿么办?
前面的都能理解也能自己慢慢的写一点程序就到匿名类卡住了,,,,求解决

4 个回复

倒序浏览
匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。这就要采用另一种形式的new语句,如下所示: new <类或接口> <类的主体> 这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。如果匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。如果匿名类实现了一个接口,它的主体必须实现接口的方法。

评分

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

查看全部评分

回复 使用道具 举报
琢磨一下它的格式,你会明白,其实跟一般的语句没什么不同的。
回复 使用道具 举报
本帖最后由 江夷 于 2014-6-17 22:20 编辑

     //接口类
interface Animal{
        //(吃的方法)抽象方法
        public abstract void eat();
}
//(类实现接口)狗实现动物
class Dog implements Animal{
        //重写吃的方法
        public void eat(){
                System.out.println("吃肉");
        }
}
//测试类
class InnerTest8{
        public static void main(String[] args){
                //Animal d = new Dog();   这是多态创建dog对象的方式,
                              //调用method方法                     method(
                        //匿名对象        
                        new Animal(){
                                //重写吃的方法
                                public void eat(){
                                        System.out.println("吃肉");
                                }
                        }
                );
                //调用method方法
                method(
                //匿名对象        
                        new Animal(){
                        //重写吃的方法
                                public void eat(){
                                        System.out.println("吃<。)#)))≦");
                                }
                        }
                );
        }
        //创建函数(method方法)
        public static void method(Animal a){
                //吃的方法
                a.eat();
        }
}
       可以将匿名内部类和内部类两个区分来看,
         其实就是因为在测试类中需要使用接口方法,需要有类实现接口才能重写方法,所以就创建了一个匿名对象,        这个匿名对象是以Animal的多态的匿名对象形式创建的,然让这个匿名对象来重写接口的eat方法,但因为没有实体对象,所以将这个整个匿名对象以及里面的重写方法用一个单独的method方法装起来,这就是完整的匿名内部类



评分

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

查看全部评分

回复 使用道具 举报
视频看不懂就看老师的笔记,看会笔记再看视频
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马