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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王丽   /  2011-7-27 06:24  /  2748 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

匿名内部类是否可继承其他类,是否可以实现接口? 我觉得应该可以吧。。。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 这个你应该自己写个程序

查看全部评分

6 个回复

倒序浏览
黑马网友  发表于 2011-7-27 06:43:05
沙发
可以实现接口,还可以扩展类,但是两者不能兼备。实现接口也只能实现一个接口。
回复 使用道具 举报
黑马网友  发表于 2011-7-27 16:36:01
藤椅
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,
但一个内部类可以作为一个接口,由另一个内部类实现。
回复 使用道具 举报
黑马网友  发表于 2011-7-27 18:10:58
板凳

回复 楼主 的帖子

不能继承其他类,但是可以作为其他类的接口
回复 使用道具 举报
黑马网友  发表于 2011-7-27 19:25:21
报纸
各位看样不是很了解匿名内部类啊。
所谓匿名就是没有名字,一个没有名字类,咱们就没法表示它。因此,匿名内部类是依托于某个已经存在的类或接口的。
也就是说,匿名内部类必须继承一个已经存在的类,或实现一个已经存在的接口。
范例1:说它不能继承的童鞋,请看这里。[code=java]package org.cxy.demo;
public class Demo {
        public static void main(String[] args) {
                new Demo(){
                        public void print(){
                                System.out.println("匿名类的print方法");
                        }
                }.print();
        }
        public void print(){
                System.out.println("Demo类的print方法");
        }
}[/code]程序执行结果:[code=java]匿名类的print方法[/code]若是匿名内部类无法继承类,那么此时,main方法内的匿名内部类,和Demo类是什么关系呢?

相应的,您也会看到,另一个范例。

范例2:接口? 照样秒杀。[code=java]package org.cxy.demo;
public class Demo{
        public static void main(String[] args) {
                new Priview(){
                        public void print(){
                                System.out.println("匿名类的print方法");
                        }
                }.print();
        }
}
interface Priview{
    public void print();
}[/code]若您把匿名内部类中的print()方法给删掉,编译器就会提示您,有未重写的方法。

因此,匿名内部类可以继承类,也可以实现接口。甚至可以说,匿名内部类必须要 继承一个类或实现一个接口。
但是匿名内部类不能同时继承类,和实现接口,二者他只能选一个。

评分

参与人数 1技术分 +2 收起 理由
admin + 2 你的分好高了

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-27 22:12:32
地板
可以继承其他类或接口,不仅可以,而且必须。
回复 使用道具 举报
黑马网友  发表于 2011-7-27 22:17:39
7#
因为内部类的实现本身就要继承一个类或实现一个接口。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马