本文概述
- 给定代码的内部工作
- 编译器生成的内部类
- 使用接口的Java匿名内部类示例
- 类(可以是抽象的或具体的)。
- 接口
abstract class Person{
abstract void eat();
}
class TestAnonymousInner{
public static void main(String args[]){
Person p=new Person(){
void eat(){System.out.println("nice fruits");
}
};
p.eat();
}
}
【Java匿名内部类】立即测试
输出:
nice fruits
给定代码的内部工作
Person p=new Person(){
void eat(){System.out.println("nice fruits");
}
};
- 创建了一个类, 但其名称由编译器决定, 该编译器扩展了Person类并提供了eat()方法的实现。
- 创建由Person类型的p引用变量引用的Anonymous类的对象。
import java.io.PrintStream;
static class TestAnonymousInner$1 extends Person
{
TestAnonymousInner$1(){}
void eat()
{
System.out.println("nice fruits");
}
}
使用接口的Java匿名内部类示例
interface Eatable{
void eat();
}
class TestAnnonymousInner1{
public static void main(String args[]){
Eatable e=new Eatable(){
public void eat(){System.out.println("nice fruits");
}
};
e.eat();
}
}
立即测试
输出:
nice fruits
给定代码的内部工作
它执行此代码后的两个主要任务:
Eatable p=new Eatable(){
void eat(){System.out.println("nice fruits");
}
};
- 创建了一个类, 但其名称由编译器决定, 该编译器实现Eatable接口并提供eat()方法的实现。
- 创建由Eatable类型的p引用变量引用的Anonymous类的对象。
import java.io.PrintStream;
static class TestAnonymousInner1$1 implements Eatable
{
TestAnonymousInner1$1(){}
void eat(){System.out.println("nice fruits");
}
}
推荐阅读
- 小程序通讯
- 所有关于DbxSvc.exe、用途和如何删除它()
- 如何在Word中添加删除线(3种方法和快捷方式)
- 什么是YourPhone.exe以及如何在Windows 10中禁用它()
- 什么是Trkwks.dll进程以及如何禁用它()
- 什么是At.exe(计划任务)和命令(提示和指南)
- 什么是w3wp.exe以及如何修复高CPU使用率()
- 如何在Microsoft Word中使用键盘快捷键进行拼写检查()
- 15种最佳Stripe替代品合集(在线支付平台推荐)