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 +
'}';
}
}