- 匿名内部类适合创建那种只需要一次使用的类。匿名内部类的语法有点奇怪,创建匿名内部类时会立即创建一个该类的实例,这个类定义立即消失,匿名内部类不能重复使用。
- 定义格式为
1 new 父类构造器(参数列表)|实现接口() 2 { 3 //匿名内部类的类体部分 4 }
使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
匿名内部类不能是抽象类,因为系统在创建匿名内部类的时候,会立即创建内部类的对象。因此不允许将匿名内部类
定义成抽象类。
- 匿名内部类的基本实现
1 abstract class Person { //抽象类 2 public abstract void eat(); 3 } 4 5 public class Demo { 6 public static void main(String[] args) { 7 //用匿名内部类实现抽象类 8 Person p = new Person() { 9 public void eat() { 10 System.out.println("eat something"); 11 } 12 }; 13 p.eat(); 14 } 15 }
- 使用匿名内部类实现接口
interface Person { public void eat(); } public class Demo { public static void main(String[] args) { //匿名内部类实现接口 Person p = new Person() { public void eat() { System.out.println("eat something"); } }; p.eat(); } }
(目前只了解这么多,随时补充)