黑马程序员技术交流社区
标题:
匿名内部类
[打印本页]
作者:
追逐
时间:
2014-3-16 01:18
标题:
匿名内部类
/*
匿名内部类:
1,匿名内部类其实就是内部类的简写格式
2,定义匿名内部类的前提:
内部类必须是继承一个类或者实现接口。
3,匿名内部类的格式: new父类或者接口的(){定义子类的内容}
4,其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖,可以理解
为带内容的对象。
5,匿名内部类中定义的方法最好不要超过三个。
*/
//定义一个接口
interface Inner_1 {
abstract void show();
}
class Outer_1 {
//定义一个函数。匿名内部类在里面实现
public void show() {
new Inner_1() {
public void show() {
System.out.println("Inner_1 show");
}
}.show();
}
/*
根据提示填写内容
根据提示我们可以想到Outer_1类中肯定有一个静态的shouRun()方法
而且在Outer_1调用showRun()方法后运算的结果为一个对象
而因为只有Inner_1类型的对象才可调用show()方法。
所以返回值类型为Inner_1
*/
public static Inner_1 showRun() {
return new Inner_1() {
public void show() {
System.out.println("匿名类.run");
}
};
}
}
class OuterTest {
public static void main(String[] args) {
new Outer_1().show();
//根据提示填写内容
Outer_1.showRun().show();
//问,不继承类也不实现类是否可以写内部类?
//答:可以。可以通过Object类型的对象来实现
new Object() {
public void show() {
System.out.println("Object::::::run");
}
}.show();
}
}
作者:
许庭洲
时间:
2014-3-16 06:17
值得学习ing!
作者:
追逐
时间:
2014-3-16 10:29
呵呵。共同学习。共同进步
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2