一:什么是匿名内部类?
1、就是一个没有名字的局部内部类 2、匿名内部类可以简化代码
二:匿名内部类的格式?
new 类名|抽象类|接口(形参){
方法重写。
}
三:匿名内部类有哪些特点?
1、匿名内部类是一个没有名字的内部类。 2、匿名内部类一但写出来,就会立即创建一个匿名内部类的对象返回。 3、匿名内部类的对象类型相当于是当前new的那个类型的子类类型。
四:要求·运动会期间,老师和学生都参加跑步比赛。
1、不使用匿名内部类的代码实现形式。
public class AnonymityDemo {
public static void main(String[] args) {
Teacher teacher = new Teacher();
game(teacher);
System.out.println("--------分割线--------");
Student student = new Student();
game(student);
}
public static void game(Runner runner) {
System.out.println("跑步开始!!!!");
runner.running();
System.out.println("跑步结束!!!!");
}
interface Runner {
void running();
}
static class Teacher implements Runner {
@Override
public void running() {
System.out.println("老师跑步~~~~~");
}
}
static class Student implements Runner {
@Override
public void running() {
System.out.println("学生跑步~~~~");
}
}
}
2、使用匿名内部类的代码实现形式。
public class AnonymityDemo2 {
public static void main(String[] args) {
game(new Runner() {
@Override
public void running() {
System.out.println("老师跑步~~~~~");
}
});
System.out.println("----------------------------");
game(new Runner() {
@Override
public void running() {
System.out.println("学生跑步~~~~");
}
});
}
public static void game(Runner runner) {
System.out.println("跑步开始!!!!");
runner.running();
System.out.println("跑步结束!!!!");
}
interface Runner {
void running();
}
}
两种方式打印结果都如下所示,使用匿名内部类确实可以简化我们很多代码。
|