匿名内部类,即没有名字的内部类,智能使用一次,常常用于简化代码的的编写,使用时必须继承一个抽象的父类或实现一个接口。
实例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
相关推荐
PHP的陌生人随机聊天室系统在线匿名聊天系统
聊聊并发系列文章 1. 聊聊并发(一)深入分析Volatile的实现原理 2. 聊聊并发(二)Java SE1.6中的Synchronized 3. 聊聊并发(三)Java线程池的分析和使用 4. 聊聊并发(四)深入分析ConcurrentHashMap 5. 聊聊并发...
王概凯软件架构原理软件架构企业级应用技术教程计算机软件架构工程师学习架构和树软件架构生命周期编程教程书籍
简单聊聊深度学习在遥感分类中的应用价值 简单聊聊深度学习在遥感分类中的应用价值
高清架构资料,讲的很不错,要开发先架构,现实中都是在一种潜在的规划架构中进行引导的,架构的思想永远不过时
我写的《聊聊微服务架构》电子书。 包括微服务技术,从微服务的入门,搭建、部署以及各模块的使用的技术书籍。 整理来源于我写的CSDN文章。 我的博客:https://blog.csdn.net/jsjwk?spm=1001.2101.3001.5113
“聊聊架构”是知名IT技术垂直社区网站新推出的一个栏目,内容为软件与网站架构,由一线架构师执笔。本书作者王概凯,网名Kevin,是一位资深的软件架构师,也是这个栏目开山之作的作者,赢得数百万访问量。
优课急送03.聊聊产品管理的基本问题
聊聊架构--洞见架构之道.pdf本书通过大量的实践一步步揭示出架构背后的原理,以及架构再软件行业的发展,并通过企业实例来展示软件架构的实际应用。
程序员最后的归宿就是向架构师方向发展。。。。。。。。。
聊聊底层优化_MegEngine Meetup No.7.pdf
本软件不用安全 无费用大家可以放心使用
明思力中国白皮书_我们聊聊微信_CN_Nov2013_lo
聊聊语音聊天室是一款专业的视频聊天软件。软件采用互联网上最先进的语音视频聊天技术,实现双视频窗口,具有极好的语音效果,画面清晰,色彩艳丽,速度快,私聊聊天中还可以看大屏幕。还能实现卡拉OK,戏曲舞蹈,娱乐...
聊聊AE体验
.NET整合聊聊
包括硬件,操作系统的一些核心概念 线程,进程的实现原理 锁的原理 各种自旋锁算法 Java synchronized内置锁的实现原理 Java并发包的多种同步工具类的实现原理
1、对于编辑:只要在中国写手之家站内加关注,对方就会出现在你的聊聊面板上面,编辑不需要再因找不到写手而烦恼,更不需要在网站里面乱跑找人,有了聊聊的好友面板,你随时都能找到他聊天交流 2、对于写手:还在为...
h5自适应简易聊天室简约轻型聊天室源码,自适应电脑/手机,采用php语言+txt数据库,无后台,搭建即可使用,简单方便,理论上可以对接任何php程序~ 数据使用txt存放,默认显示近50条聊天记录(也可清空聊天记录) ...
今天,忍不住再聊一件事,内部市场化.docx