今天面试被问到接口的成员变量是怎么定义的。。。。。。。

整个人都懵了,what???,3年的开发,我竟然没有定义过接口成员属性,其实源码里有很多很多,但是你看不到的是他默认的修饰符

举个例子:spring事务的隔离级别就有

接口成员变量

图片里显示的你没有看错,和普通类定义成员变量一样,如果你这样想就错了,看起来是一样,但是编译后就不是这样的,接下来让我们反编译之后再来看看

1,普通类定义成员变量

接口成员变量

1.1,普通类反编译

接口成员变量

2,接口定义成员变量

接口成员变量

2.2,接口反编译

接口成员变量

 

总结:在代码层面,我们看到的是同样的定义,但是反编译之后,接口和普通类的成员变量却不一样了,接口成员变量默认是public static final 来修饰的。

小思考:普通类的成员变量,初始化是在构造函数里完成的,为什么呢?当做你们的任务去探究一下喽

相关文章:

  • 2021-08-31
  • 2021-11-01
  • 2022-01-19
  • 2021-11-27
  • 2021-11-27
猜你喜欢
  • 2021-07-25
  • 2022-12-23
  • 2021-12-05
  • 2021-12-05
  • 2021-11-27
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案