匿名类
1. 匿名类是一种定义于方法中的内部类 。
public class Test {
public static void main(String[] args) {
Person boy=new Person(){
public void eat(){
System.out.println(" a boy is eating rice");
}
};
}
}
定义在 main方法中
2.** 匿名类定义在 匿名类对象创建对象的表达式中(new 表达式)**
new Person(){
public void eat(){
System.out.println(" a boy is eating rice");
}
};
3. 匿名类必须实现某个接口(超类是Object类)或者继承某个类,两者只能选择其一。
person抽象类
public abstract class Person {
public abstract void eat();
}
匿名类继承了Person抽象类实现了里面的方法
Person boy=new Person(){
public void eat(){
System.out.println(" a boy is eating rice");
}
};
}
匿名类的语法
new () {
成员定义
} ;
注意点:
匿名类不能有自定定义的构造方法,编译系统自动根据()列表调用超类中相应的构造方法
父类或者接口名 只是一个标识。表名匿名类需要实现的类或者接口。new 后面不是构造器
注意括号后面的分号不可省略
匿名类的特点
匿名内部类顾名思义就是没有名字的内部类。
因为没有名字,所以匿名内部类只可以使用一次。
匿名内部类常用来简化代码的编写。
使用内部类有一个前提条件,必须继承父类或实现一个接口。
匿名内部类常常用于多线程。
参照