黑马程序员技术交流社区
标题:
求高手指点!!!
[打印本页]
作者:
唐侠君
时间:
2013-12-16 01:57
标题:
求高手指点!!!
匿名内部类是否可以继承其它类,是否可以以implements实现接口?
在网上搜到有两种解释
1.可以继承其他类或完成其他接口,在swing编程中常用此方式。
2.匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
不知到底该怎样解释了,希望大家帮助一下,谢谢了!
作者:
lichao
时间:
2013-12-16 08:12
匿名内部类时必须要继承或实现接口的,要不他怎呢创建类呀?匿名内部类的格式:
class out{ //外部类
new Runnable(){ //实现接口的匿名内部类
写内部内的方法或成员变量;
}
new Object(){ //继承类的匿名内部类
写内部内的方法或成员变量;
}
}
复制代码
如果不继承类或接口是无法匿名的;
作者:
胡永城
时间:
2013-12-16 11:41
本帖最后由 胡永城 于 2013-12-17 10:51 编辑
1、匿名内部类必须继承其他类或实现接口
2、可以定义
普通内部类
、
抽象内部类
或
内部接口
,并且这些
内部类或内部接口
都可以被其他内部类继承或实现,且可以以匿名内部类的方式去继承和实现。
源代码如下,不全面,给你一个方法,其他自己测试吧。
import org.junit.Test;
public class Ohter {
@Test
public void test(){
new InnerDemo(){//匿名内部类继承InnerDemo
void show(){
System.out.println("匿名继承外部其他类InnerDemo复写的show方法");
}
}.show();
new Inner(){//匿名内部类继承Inner
void show(){
System.out.println("匿名继承内部类Inner复写的show方法");
}
}.show();
new Interface() {
@Override
public void show() {
System.out.println("匿名内部类实现内部接口");
}
}.show();
}
class Inner{//内部类Inner
void show(){
System.out.println("内部类Inner的show方法");
}
}
interface Interface{//内部接口
void show();//未实现的方法
}
}
class InnerDemo{//外部其他类
void show(){
System.out.println("外部其他类InnerDemo的show方法");
}
}
复制代码
为什么这么写的问题请看毕老师的视频,面向对象第九。
哎!付哥这是对我羡慕嫉妒恨呀,所以给加了这么多金币 ↓ ↓
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2