Java 匿名内部类
注意事项
在使用匿名内部类的过程中,我们需要注意如下几点:
- 使用匿名内部类时,我们必须是继承一个类或者实现一个接口,但是两者不可兼得,同时也只能继承一个类或者实现一个接口;
- 匿名内部类中是不能定义构造函数的;
- 匿名内部类中不能存在任何的静态成员变量和静态方法;
- 匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效;
- 匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。
package com.hundsun.inner; import java.util.Comparator; import java.util.TreeSet; /** * @Description: 匿名内部类 * @date 2018/9/18 18:53 */ public class InnerTest { public static void main(String[] args) { TreeSet<Data> treeSet = new TreeSet<Data>(new Comparator<Data>() { @Override public int compare(Data o1, Data o2) { return o1.age > o2.age ? -1 : o1.age < o2.age ? 1 : 0; } }); treeSet.add(new Data(1)); treeSet.add(new Data(-1)); treeSet.add(new Data(0)); System.out.println(treeSet.toString()); } } class Data { int age; public Data(int age) { this.age = age; } @Override public String toString() { return "Data{" + "age=" + age + '}'; } }