「这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战」
匿名内部类: 本质上是一个没有名字的局部内部类,定义在方法中、代码块中、等。 作用: 方便创建子类对象,最终目的为了简化代码编写。
特点总结: 匿名内部类是一个没有名字的内部类。 匿名内部类写出来就会产生一个匿名内部类的对象。 匿名内部类的对象类型相当于是当前new的那个的类型的子类类型。
匿名内部在开发中使用形式: 匿名内部类可以作为方法的时机参数进行传输。
public class Test2 {
public static void main(String[] args) {
Swimming s = new Swimming() {
@Override
public void swim() {
System.out.println("游泳了");
}
};
go(s);
Swimming s1 = new Swimming() {
@Override
public void swim() {
System.out.println("老师游泳了");
}
};
go(s1);
Swimming s2 = new Swimming() {
@Override
public void swim() {
System.out.println("校长游泳了");
}
};
go(s2);
Swimming s3 = new Swimming() {
@Override
public void swim() {
System.out.println("运动员游泳了");
}
};
go(s3);
go(new Swimming() {
@Override
public void swim() {
System.out.println("学生直接游泳了。");
}
});
go(new Swimming() {
@Override
public void swim() {
System.out.println("老师直接游泳了。");
}
});
go(new Swimming() {
@Override
public void swim() {
System.out.println("校长直接游泳了。");
}
});
go(new Swimming() {
@Override
public void swim() {
System.out.println("运动员直接游泳了。");
}
});
}
public static void go(Swimming s) {
System.out.println("开始...");
s.swim();
System.out.println("结束...");
}
}
interface Swimming{
void swim();
}
匿名内部类在开发中的真是使用场景演示: 给按钮绑定点击事件
使用总结: 开发中不是我们主动去定义匿名内部类,而是别人需要我们写或者我们可以写的时候才会使用。 匿名内部类的代码可以实现代码进一步的简化。