java中的匿名内部类总结
来源:互联网 发布:淘宝几百块的电脑主机 编辑:程序博客网 时间:2024/06/06 08:26
转载
匿名内部类也就是没有名字的内部类
正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写
但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
实例1:不使用匿名内部类来实现抽象方法
abstract
class
Person {
public
abstract
void
eat();
}
class
Child
extends
Person {
public
void
eat() {
System.out.println(
"eat something"
);
}
}
public
class
Demo {
public
static
void
main(String[] args) {
Person p =
new
Child();
p.eat();
}
}
运行结果:eat something
可以看到,我们用Child继承了Person类,然后实现了Child的一个实例,将其向上转型为Person类的引用
但是,如果此处的Child类只使用一次,那么将其编写为独立的一个类岂不是很麻烦?
这个时候就引入了匿名内部类
实例2:匿名内部类的基本实现
abstract
class
Person {
public
abstract
void
eat();
}
public
class
Demo {
public
static
void
main(String[] args) {
Person p =
new
Person() {
public
void
eat() {
System.out.println(
"eat something"
);
}
};
p.eat();
}
}
运行结果:eat something
可以看到,我们直接将抽象类Person中的方法在大括号中实现了
这样便可以省略一个类的书写
并且,匿名内部类还能用于接口上
实例3:在接口上使用匿名内部类
interface
Person {
public
void
eat();
}
public
class
Demo {
public
static
void
main(String[] args) {
Person p =
new
Person() {
public
void
eat() {
System.out.println(
"eat something"
);
}
};
p.eat();
}
}
运行结果:eat something
由上面的例子可以看出,只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现
最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口
实例4:Thread类的匿名内部类实现
public
class
Demo {
public
static
void
main(String[] args) {
Thread t =
new
Thread() {
public
void
run() {
for
(
int
i =
1
; i <=
5
; i++) {
System.out.print(i +
" "
);
}
}
};
t.start();
}
}
运行结果:1 2 3 4 5
实例5:Runnable接口的匿名内部类实现
public
class
Demo {
public
static
void
main(String[] args) {
Runnable r =
new
Runnable() {
public
void
run() {
for
(
int
i =
1
; i <=
5
; i++) {
System.out.print(i +
" "
);
}
}
};
Thread t =
new
Thread(r);
t.start();
}
}
运行结果:1 2 3 4 5
0 0
- java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- Java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- Java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- java中的匿名内部类总结
- Java中的匿名内部类总结
- Java中的匿名内部类总结
- initializer_list
- [转载]不会带团队的领导,只能自己干到死
- Scala 的Hbase接口函数
- 默认实参
- 磁盘存储管理
- java中的匿名内部类总结
- 关于this,继承,修饰的问题
- List双向链表容器
- 301、404、200、304等HTTP状态
- java读取TXT文件的方法
- java读写txt文件
- 把Java程序打包成jar文件包并执行
- R 学习 运算函数篇
- IP地址与子网划分
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
海外读研费用
海外云服务器
春节海外旅游
海外技术移民
海外主机租用
海外留学生网
注册海外商标
海外买房网站
海外奢侈品网站
英语专业海外留学
海外公司注册代理
海外旅行保险
国外淘宝
海外海大酒店
海大集团
鸣海大我
海大股票
海大饲料
海大轮胎
中海大
中国海大
海大在线
为什么海大少被韩立灭全族
那片花那片海大结局
海大少和南宫婉
海大集团股票
海大在职研究生
海大寸金学院
青岛海大崂山校区酒店
海大轮胎价格表
海大继续教育学院
海大是哪个大学
海南的大学
海南大学吧
海南大学本科招生网
中国海洋大学怎么样
海南大学怎么样在国内
海南大学是几本大学
海南大学研究生
中国海洋大学专业排名
海南大