目录
一、概念
匿名类是没有类声明的类,即没有public class 声明的类,也就是没有类的名字。
二、声明匿名类
用new调用父类构造方法,在父类构造方法后面直接加{}写类体,这样就得到了一个匿名对象
public class Test {
public static void main(String[] args) {
//s为父类型的引用,不是匿名对象的引用
Speakable s = new Speakable(){ //Speakable的匿名实现类体
String name ="Herrona";//在本类中使用
public void speak()
{
System.out.println(name+"说:哈哈");
}
//添加方法
public void eat()
{
System.out.println("在吃东西");
}
};
s.speak();//可通过父类型引用调用匿名对象重写的方法
s.eat(); //会报编译错,因为s是父类型的引用
}
}
interface Speakable {
void speak();
}
三、性质
1. 匿名类一定是某类或者某接口的子类,可以继承、增加、重写成员。
2. 匿名类一定是内部类
3. 匿名类体中不可以声明静态变量和方法(静态成员必须通过类名访问,匿名类没有名字,所以不能有static修饰的成员)
4. 匿名类直接使用父类的构造方法
四、意义
使得某些接口的使用更加快捷。