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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡建彪 黑马帝   /  2012-10-27 19:56  /  1618 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问,匿名内部类能否继承其他类? 能否实现接口?

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

6 个回复

倒序浏览
个人感觉不可以。
无论你是继承还是实现接口,你总的有个名字
class A extends B
class A implements C
名字都没有怎么继承和实现?

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

回复 使用道具 举报
可以的吧
匿名内部类就是一个匿名子类对象
new 父类或接口(){定义子类的内容}
        abstract class AbsDemo
       {
              abstract void show();
       
        }
        new AbsDemo()//AbsDemo x = new AbsDemo()
        {
                void show()
                {
                        System.out.println("...");
                }
        }.show();
回复 使用道具 举报
完全可以,看下边的例子,摘自Think   in   Java,The   2nd   Edition.

先定义一个接口:
interface   Contents   {
    int   value();
}

再定义一个类(构造函数不是默认的):
public   class   Wrapping   {
    private   int   i;
    public   Wrapping(int   x)   {   i   =   x;   }
    public   int   value()   {   return   i;   }
}

先实现接口:
public   class   Parcel6   {
    public   Contents   cont()   {
        return   new   Contents()   {
            private   int   i   =   11;
            public   int   value()   {   return   i;   }
        };   //   Semicolon   required   in   this   case
    }
    public   static   void   main(String[]   args)   {
        Parcel6   p   =   new   Parcel6();
        Contents   c   =   p.cont();
    }
}

再继承类:
public   class   Parcel7   {
    public   Wrapping   wrap(int   x)   {
        //   Base   constructor   call:
        return   new   Wrapping(x)   {   
            public   int   value()   {
                return   super.value()   *   47;
            }
        };   //   Semicolon   required
    }
    public   static   void   main(String[]   args)   {
        Parcel7   p   =   new   Parcel7();
        Wrapping   w   =   p.wrap(10);
    }
}   

回复 使用道具 举报
请问,匿名内部类能否继承其他类? 能否实现接口?

张孝祥老师的回答是:必须的!
因为匿名内部类要么必须实现接口,要么必须是其他类的子类。
回复 使用道具 举报

lz 想问的应该是 匿名内部类能否继承或实现接口吧?

答案是不能。匿名内部类没有名字 没法被继承或实现接口

回复 使用道具 举报
当然可以啊,而且匿名内部类必须继承一个类或实现一个接口,否则你是没有办法为它实例化的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马