1)创建匿名内部类的格式
new 父类(参数列表)|接口(){
//这里面必须要实现父类或者接口未实现的方法
//这里面可以重写(覆盖)父类已经实现的方法
//外面使用大括号{}包裹起来
}
2)2个注意点
①匿名内部类我们必须要继承一个父类或者实现一个接口,并且只能继承一个父类或者实现一个接口。要么继承一个父类,要么实现一个接口。
②匿名内部类使用new来创建对象,不能是抽象的,因此必须要实现它的抽象父类或者接口里面所有的抽象方法。
3)常用场景
匿名内部类多用于多线程的实现上,因为要实现多线程必须继承Thread类或是实现Runnable接口。
public static void main(String[] args) {
Thread thread=new Thread(){
@Override
public void run() {
// 重写Thread类的run()方法
super.run();
}
};
thread.start();
}
public static void main(String[] args) {
Runnable runnable=new Runnable() {
@Override
public void run() {
//实现Runnable接口的run()方法
}
};
Thread t=new Thread(runnable);
t.start();
}