【总结】匿名内部类
1.匿名内部类概念
一个继承了类的子类的匿名对象 或者一个实现了接口的实现类的匿名对象。
开发中,最常用到的内部类就是匿名内部类了。以接口举例,当你使用一个接口时,似乎得做如下几步操作。
1、定义子类
2、重写接口中的方法
3、创建子类对象
4、调用重写后的方法
我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快捷方式
2.条件
(1)匿名内部类必须继承一个父类或者实现一个父接口。
(2)函数式接口:就是一个有且仅有一个抽象方法,但是可以有多个默认方法的接口
3.实例
3.1.创建线程 - 继承Thread类,实现run方法
public class Demo {
public static void main(String[] args) {
Thread t = new Thread() {
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.print(i + " ");
}
}
};
t.start();
}
}
3.2 实现runnable接口,实现run方法
public class Demo {
public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.print(i + " ");
}
}
};
Thread t = new Thread(r);
t.start();
}
}
4.lambda简化
Thread t1 = new Thread(() -> System.out.println(Thread.currentThread().getName() + "线程创建"));
Runnable runnable = () -> System.out.println(Thread.currentThread().getName() + "线程创建");
Thread t2 = new Thread(runnable);