匿名内部类
public class InnerClassExercise01 {public static void main(String[] args) {
f1(new A() {
@Override
public void show() {
System.out.println("这是一幅画");
}
});
}
public static voidf1(A a){
a.show();
}
}
interface A{
void show();
}
这里看不懂呀,匿名内部类不是定义在方法里面的局部变量吗,为啥可以直接在主方法里面用 ,然后这个static调用也没看懂,类方法调用不是类名.方法吗 哦,不对这个匿名内部类看懂了,就是这个类方法调用没看懂 还有个小疑问,匿名内部类 ,看别人的解释是说没有名字所以只能调用一次,但是匿名内部类不也可以设置一个变量来接受吗,这样为啥还只能调用一次
帅雷必成c王 发表于 2022-7-3 08:31
还有个小疑问,匿名内部类 ,看别人的解释是说没有名字所以只能调用一次,但是匿名内部类不也可以设置一个 ...
因为是匿名的,所以只有你调用那次创建了匿名内部类
第二次调用又是新的匿名内部类了,虽然结构上都是一样的,但是相当于你多次调用执行了多次的 new 1. 匿名内部类是没有名字的类,你用变量接收了就不叫匿名内部类类
2. public class InnerClassExercise01 {
public static void main(String[] args) {
// 调用方法需要传入一个A类型的类,而你没有就得new一个A类型的类啊,而A是一个接口你就得实现接口的抽象方法啊
f1(new A() {
@Override
public void show() {
System.out.println("这是一幅画");
}
});
}
public static voidf1(A a){
a.show();
}
}
interface A{
void show();
}
匿名内部类,只是设置方法,要调用方法才会显示重写的内容
页:
[1]