Bootstrap

博客摘录「 Java 中的泛型(两万字超全详解)」2024年6月22日

接口中的属性默认是静态的  

接口中的属性默认是静态的 :这句话怎么理解

实际上,这句话表述有误。在Java中,接口中的属性默认是静态static)和最终final)的,这意味着它们是常量。更准确的说法应该是:“接口中的成员变量默认是静态常量”。

这里的关键点包括:

  1. 静态(static:表明这个变量属于接口本身,而不是接口的任何特定实例。所有实现该接口的类共享同一份这个变量的拷贝,通过接口名直接访问,无需实例化。

  2. 最终(final:意味着这个变量一旦赋值就不能再改变,它是不可变的。

  3. 公共(public:虽然没有明确写出,但接口中的所有元素都隐式地具有公共访问修饰符,因此这些变量可以被任何类访问。

例如:

 

Java

1public interface MyInterface {
2    int MY_CONSTANT = 10; // 这是一个静态常量
3}

在这个例子中,MY_CONSTANT 是一个接口中的属性,它是静态的、最终的,并且是公有的。你不能在接口中声明非静态的属性。所以,正确的理解是接口中的属性实际上是静态常量,而非“接口中的属性默认是静态的”这一表述所暗示的普通静态变量。

;