一.实现功能:等价于调用接口中的方法
原需步骤:1.创建实现类,通过implements关键字去实现接口
2.重写方法
3.创建实现类对象
4.调用重写后的方法
二.匿名内部类基础知识
前提:需要存在类\接口
格式:
new 类名/接口名(){
重写方法
}
public class InnerClass {
public static void main(String[] args) {
//实现了Inter接口的,一个实现类对象,并调用重写后的方法
new Inter(){
@Override
public void show() {
System.out.println("匿名内部类中的show方法");
}
}.show();
}
}
interface Inter {
void show();
}
三.接口中存在多个方法的情况
如果一个接口中存在多个方法,想使用匿名内部类调用方法,可在匿名内部类前使用父接口/父类的引用去接收实现的对象(多态)
public class InnerClass {
public static void main(String[] args) {
Inter i = new Inter() {
@Override
public void show1() {
System.out.println("show1...");
}
@Override
public void show2() {
System.out.println("show2...");
}
};
i.show1();
i.show2();
}
}
interface Inter {
void show1();
void show2();
}
四.匿名内部类在开发中的使用场景
当方法的形式参数是接口或是抽象类时,可以将匿名内部类作为实际参数进行传递。
public class TestSwimming {
public static void main(String[] args) {
goSwimming(new Swimming() {
@Override
public void swim() {
System.out.println("swim...");
}
});
}
public static void goSwimming(Swimming swimming){
swimming.swim();
}
}
interface Swimming{
void swim();
}