Java 接口中可以有 protected 属性吗?

java 接口中可以有 protected 属性吗?

属性受限访问权限的 Java 接口

原本,Java 中接口的属性是 public static final 的,但你给出的接口 Runner 中的 id 属性却声明为 protected。这是为什么呢?

protected 访问权限允许子类访问接口的属性,而其他类只能通过 getter 和 setter 方法访问。在这个例子中,Runner 接口的 id 属性在子类中是可见的。

为了了解这一点,我们来看看 Java 中属性和接口的规则:

  • 接口中的属性默认是 public static final 的,这意味着它们是常量,存储在接口本身中。
  • 不过,Java 8 引入了一个例外,允许接口声明非 final 的 protected 属性。这些属性只能被接口的子类访问。
  • 因此,Runner 接口中的 id 属性是一个 protected 的非 final 属性,允许其子类访问和修改它。

以上就是Java 接口中可以有 protected 属性吗?的详细内容,更多请关注其它相关文章!