今天看书的时候发现一个有意思的东西 ——— static abstract class:
public class Test {
/**
* @Description: 静态抽象内部类
*/
static abstract class InnerClass {
int i = 1;
static int si = 2;
//普通方法:fun()
void fun() {
System.out.println("内部方法");
}
//静态方法:sfun()
static void sfun() {
System.out.println("内部静态方法");
}
//抽象方法:absfun()
abstract void absfun();
}
static class TestClass extends InnerClass {
//内部实现方法
@Override
public void absfun() {
System.out.println("内部实现方法");
}
}
public static void main(String[] args) {
InnerClass.sfun();
// InnerClass innerClass = new InnerClass();
TestClass testClass = new TestClass();
testClass.absfun();
testClass.fun();
System.out.println(testClass.i);
System.out.println(InnerClass.si);
}
}
static abstract 可以同时修饰内部类,
该类可以正常声明变量、普通方法、抽象方法,总之就是个写在类内部的类,看起来和一个普通类没什么区别。