一.匿名内部类存在的前提
需要存在在类中或者接口中.
格式:
//格式
new 类名/接口名(){
重写方法
}
//示例
public class Test2 {
public static void main(String[] args) {
new InterA() {
@Override
public void show() {
System.out.println("Hello");
}
};
}
}
//接口
interface InterA{
void show();
}
二.匿名内部类的理解
创建了一个类或者一个接口的子类或者实现类对象.
当类或者接口中存在多个方法时,可以把,创建的对象赋值到一个值中,进行方法的调用.
public class Test2 {
public static void main(String[] args) {
InterA i= new InterA() {
@Override
public void show1() {
System.out.println("重写方法show1");
}
@Override
public void show2() {
System.out.println("重写方法show2");
}
};
i.show1();
i.show2();
}
}
interface InterA{
void show1();
void show2();
}
当类或接口中只有一个方法时,可以在实现类后面直接使用.方法名,进行调用
public class Test2 {
public static void main(String[] args) {
new InterA() {
@Override
public void show() {
System.out.println("重写方法show");
}
}.show();
}
}
interface InterA{
void show();
}
三.匿名内部类的使用了场景
1.当接口的实现类或者抽象类的子类只用一次少次的使用可以简化.
2.当接口的方法不超过4个的时候可以使用.
3.方法实现不复杂的时候.