匿名内部类,即没有名字的内部类,智能使用一次,常常用于简化代码的的编写,使用时必须继承一个抽象的父类或实现一个接口。
实例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
相关推荐
可以在方法体内定义一个内部类,这样的内部类称为局部内部类。 #### 十三、继承性 **继承的概念:** 继承允许我们创建一个新的类,这个新类继承了已有类的属性和方法。 **覆写(Override):** 当子类中的方法与...
- 成员内部类、局部内部类、静态内部类和匿名内部类。 - 内部类的访问特点。 - 内部类的使用场景。 #### 第12天~第13天:Java中的异常和包的使用 1. **异常处理**: - 异常的概念及其分类:编译时异常、运行时...
08.匿名内部类 09.动物类案例 第八章 特质 00.导学 01.类继承单个特质 02.类继承多个特质 03.单例对象继承特质 04.演示trait中的成员 05.动态混入trait 06.使用trait实现适配器设计模式 07.使用trait实现...
同时,它还具备匿名聊天和阅后即焚的“密聊”模式,增强信息的安全性。 企业群和通讯录功能则支持实名制,便于企业构建分级管理的组织架构,同时通过短信激活员工账号,保证信息的真实性。会议系统涵盖了电话会议和...
10-[掌握]-Flink入门案例-代码实现-2-DataStream流批一体-匿名内部类版 11-[掌握]-Flink入门案例-代码实现-2-DataStream流批一体-Lambda版 12-[掌握]-Flink入门案例-代码实现-2-DataStream流批一体-On-Yarn 13-[掌握...
此外,钉钉还提供了匿名聊天的“密聊”功能,以增强信息的安全性。 企业群和通讯录功能实现了实名制,便于组织管理和人员联络。通讯录分级管理,通过短信激活,确保了信息的真实性和安全性。同时,钉钉的会议系统...
DING消息不仅可以通过电话、短信、系统提醒等方式确保消息必达,还能设置匿名模式(密聊),消息阅后即焚,增强信息的安全性。 2. 企业群和通讯录:通讯录实行实名制,便于企业管理。组织架构可分级管理,员工激活...
`define`接受一个函数作为参数,这个函数通常是一个立即执行的匿名函数,函数体内的代码就是模块的实现。 `require`函数则用于加载模块并执行回调。如: ```javascript require(["js/a"], function() { alert(...
5. **数据隐私保护**:Matomo强调用户数据的隐私性,Java追踪器也遵循这一原则,提供了匿名化IP地址和尊重Do Not Track设置的功能。 **学习与面试资料:** 了解Matomo Java Tracker有助于提升Java开发者在Web分析...
C#是微软公司推出的一种面向对象的编程语言,它的语法简洁且强大,支持多种高级特性,如泛型、匿名方法、 LINQ(Language Integrated Query)以及异步编程等。在《SingularJourney》的开发过程中,C#可能被用来编写...