Java匿名内部类
什么是Java匿名内部类
在Java中,未命名的类称为匿名内部类。 如果需要重写类或接口的方法,可以使用它。 可以通过以下两种方法创建Java匿名内部类:
类(可以是抽象的或具体的类。
接口
2 Java匿名内部类示例
package com.yiidian;
//*
*一点教程网: http://www.yiidian.com
*/
//*
* Java匿名内部类示例
*/
Abstract类人员{
abstract void eat (;
}
类演示{
publicstaticvoidmain (string args [ ] ) {
人员p=new人员() {
void eat () }
System.out.println ('好吃…' );
}
(;
p.eat (;
}
}
输出结果如下。
很好吃.
3 Java匿名内部类的工作原理
人员p=new人员() {
void eat () }
System.out.println ('好吃…' );
}
(;
类已创建,但名称由编译器确定。 编译器扩展Person类并提供eat ()方法的实现。
创建由人员类型的p引用变量引用的匿名类的对象。
以下是经过反编译的匿名内部类的源代码。
import java.io.PrintStream;
静态类demo $ 1扩展人员
{
Demo$1() }
void eat () )
{
System.out.println ('好吃…' );
}
}
4使用接口的匿名内部类示例
package com.yiidian;
//*
*一点教程网: http://www.yiidian.com
*/
//*
*带接口的Java匿名内部类示例
*/
接口启用{
void eat (;
}
类演示{
publicstaticvoidmain (string args [ ] ) {
Eatable e=new Eatable
public void eat () ({System.out.println ) )好吃的苹果…); }
(;
e.eat (;
}
}
输出结果如下。
好吃的苹果.
5使用接口的匿名内部类机制
Eatable p=new Eatable
void eat ()。
System.out.println ('美味苹果');
}
(;
类已创建,但名称由编译器确定,实现Eatable接口并提供eat ()方法的实现。
创建由Eatable类型的p引用变量引用的匿名类的对象。
要反编译带接口的匿名内部类的源代码,请执行以下操作:
import java.io.PrintStream;
staticclassdemo $1implements eatable
{
Demo$1() }
void eat () }
System.out.println ('好吃的苹果.');
}
}