抽象的静态的内部类的性质

今天在看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 ! ! !

你可能感兴趣的:(Java,抽象的静态的内部类的性质,java)