java的匿名内部类性质及作用

匿名内部类(Anonymous Inner Class):特殊的局部内部类,是由局部内部类改写
能改成匿名内部类的局部内部类需要满足:
4.1该内部类继承自某个类或者实现某个接口
4.2该内部类在整个方法中之创建了一个对象

匿名内部类是特殊的局部内部类,同样可以方位外部类的私有方法和属性,已经final局部变量(常量),但匿名内部类没有任何构造器
匿名内部类的使用形成了一下语法:
new 接口名(){实现接口的代码};
此处的new,不是创建接口对象(接口无法直接new),而是创建一个实现了接口的、没有名字的内部类的对象!

public class TestAnonymousInnerClass
{
public static void main(String args[]){
Teacher teacher = getTeacher(2);
teacher.teach();
}
public static Teacher getTeacher(int n){
if(n == 1){
//匿名内部类Tom
return new Teacher(){
public void teach(){
System.out.println(“Tom teach”);
}
};
}else{
//匿名内部类Jim
return new Teacher(){
public void teach(){
System.out.println(“Jim teach”);
}
};
}
}
}
//定义接口
interface Teacher
{
public void teach();
}

© 2014, 李德涛博客. 版权所有.

发表评论

电子邮件地址不会被公开。 必填项已用*标注