今天面试被问到接口的成员变量是怎么定义的。。。。。。。
整个人都懵了,what???,3年的开发,我竟然没有定义过接口成员属性,其实源码里有很多很多,但是你看不到的是他默认的修饰符
举个例子:spring事务的隔离级别就有
图片里显示的你没有看错,和普通类定义成员变量一样,如果你这样想就错了,看起来是一样,但是编译后就不是这样的,接下来让我们反编译之后再来看看
1,普通类定义成员变量
1.1,普通类反编译
2,接口定义成员变量
2.2,接口反编译
总结:在代码层面,我们看到的是同样的定义,但是反编译之后,接口和普通类的成员变量却不一样了,接口成员变量默认是public static final 来修饰的。
小思考:普通类的成员变量,初始化是在构造函数里完成的,为什么呢?当做你们的任务去探究一下喽