匿名内部类是内部类的简写格式。
定义匿名内部类的前提:
内部类必须是继承一个类或者实现一个接口。
匿名内部类的格式:
new 父类或者接口()
{
//子类的内容
void method()
{
//具体实现
}
}.method();//.method();之前是创建一个没有子类名的对象,然后调用方法
父类或者接口 name = new 父类或者接口()
{
//子类的内容
void method()
{
//具体实现
}
void method2() {
//子类自己的方法,不是父类或者接口的方法
}
};//给这个匿名内部类起个名字,放便调用匿名类的方法,体现的是多态,父类引用指向子类对象
name.method();//正确
name.method2();//错误,只能使用父类方法,因为父类中没有method2()方法,所以调用的时候在父类中找不到,这是弊端
其实匿名内部类就是一个匿名子类对象,就是把定义类和建立对象封装在一起的一种表现形式,形成的是匿名子类对象。