黑马程序员技术交流社区
标题:
java中的匿名内部类
[打印本页]
作者:
崔司龙
时间:
2015-6-30 22:31
标题:
java中的匿名内部类
定义:没有名字的局部内部类。
格式:
new 接口名或者抽象类名 () {
// 实现接口或抽象类的方法
// 可以有自己的方法(但是我们一般不这么用)
};
理解:匿名内部类实际上实现了接口(或者继承了抽象类)的子类匿名对象。、
举例:
interface Animal {
// 抽象方法
}
class Cat implements Animal {
// 实现方法
}
//new B();
//new A () {
//实现接口A的方法
//};
Cat c = new Cat();
Test t = new Test();
//t.show(c);
t.show(new Animal() {
// 实现接口Animal的方法
});
是不是相当于把子类实现和创建子类对象放到一个步骤完成了。
使用:一般在参数列表里面,如果参数是接口(抽象类),就可以使用匿名内部类替代接口(抽象类)。
class Test {
public void show (Animal a) {
// 这个地方的接口就可以使用匿名内部类替代
a.show(); // 这个show方法一定是实现类的
}
}
举例:
接口
interface Inter {
// 抽象方法
}
class ImplTest implements Inter {
// 实现接口的抽象方法
}
// 创建具体的实现对象
ImplTest it = new ImplTest();
// 向上转型 多态
Inter ii = it;
Inter ii = new ImplTest();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2