java中的匿名内部类总结

匿名内部类也就是没有名字的内部类
正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写
但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
实例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:匿名内部类的基本实现
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
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 匿名
# 内部类
# 内部类的详解
# 详解内部类
# Java匿名类
# 匿名内部类实例分析
# java匿名内部类实例代码详解
# Java匿名内部类原理与用法详解
# Java局部内部类和匿名内部类定义与用法实例分析
# Java匿名对象与匿名内部类
# java 中匿名内部类的实例详解
# java中匿名内部类详解
# Java 匿名内部类详解及实例代码
# java 内部类(匿名类
# 匿名对象
# 静态内部类)详解及实例
# JAVA匿名内部类语法分析及实例详解
# 将其
# 可以看到
# 来实现
# 多线程
# 实现了
# 有个
# 还能
# 如有
# 希望能
# 便可
# 这个时候
# 可以使用
# 可以看出
# 谢谢大家
# 岂不是
# 最常用
# 很麻烦
# 其子
# 前提条件
# 类中
相关文章:
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
*服务器网站为何频现安全漏洞?
如何解决VPS建站LNMP环境配置常见问题?
如何在服务器上三步完成建站并提升流量?
建站之星如何一键生成手机站?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
如何在Golang中使用replace替换模块_指定本地或远程路径
如何快速上传建站程序避免常见错误?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
表情包在线制作网站免费,表情包怎么弄?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何选择服务器才能高效搭建专属网站?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
小程序网站制作需要准备什么资料,如何制作小程序?
如何选择高效稳定的ISP建站解决方案?
如何获取上海专业网站定制建站电话?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
制作网站的模板软件,网站怎么建设?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
制作网站的基本流程,设计网站的软件是什么?
全景视频制作网站有哪些,全景图怎么做成网页?
深圳网站制作培训,深圳哪些招聘网站比较好?
已有域名如何免费搭建网站?
如何在自有机房高效搭建专业网站?
高端网站建设与定制开发一站式解决方案 中企动力
江苏网站制作公司有哪些,江苏书法考级官方网站?
如何将凡科建站内容保存为本地文件?
如何通过免费商城建站系统源码自定义网站主题与功能?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
个人网站制作流程图片大全,个人网站如何注销?
网站制作需要会哪些技术,建立一个网站要花费多少?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
,想在网上投简历,哪几个网站比较好?
如何通过VPS建站实现广告与增值服务盈利?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
建站之星如何快速生成多端适配网站?
如何通过多用户协作模板快速搭建高效企业网站?
网站按钮制作软件,如何实现网页中按钮的自动点击?
javascript基本数据类型及类型检测常用方法小结
建站之星如何快速解决建站难题?
如何快速完成中国万网建站详细流程?
免费网站制作appp,免费制作app哪个平台好?
魔方云NAT建站如何实现端口转发?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
如何通过虚拟主机快速完成网站搭建?
个人摄影网站制作流程,摄影爱好者都去什么网站?
建站之星免费模板:自助建站系统与智能响应式一键生成
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
*请认真填写需求信息,我们会在24小时内与您取得联系。