今天在看android源码时, 才发现一个叫做抽象静态内部类的东西,学Java时好像都没听说过, 所以我决定一探究竟。那我就直接上代码吧!
public class HelloWorld {
public static void main(String[] args) {
Outer outer = new Outer();
//内部类的实现
Outer.Inner inner = new Outer.Inner() {
@Override
public void method2() {
System.out.println("111");
}
@Override
public void method3() {
System.out.println("222");
}
};
System.out.println(outer.a);
inner.method1();
inner.method2();
inner.method3();
}
}
//外部类
class Outer {
int a = 5;
//抽象静态内部类, 及它的声明
public abstract static class Inner{
int b = 5;
public void method1() {
System.out.println("调用了内部的方法");
}
public abstract void method2();
public abstract void method3();
}
}
要注意的有以下方面:
(1).静态抽象的内部类中可以声明变量, 普通方法与抽象方法。
(2).在实现这个内部类时,就算没有重写所有抽象方法,它也不会报错。我在Eclipse上试过了,有兴趣的读者可自行尝试。
下面是运行结果:
5
调用了内部的方法
111
222
GOOD LUCK ! ! !