Java 接口中可以有 protected 属性吗?
原本,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 属性吗?的详细内容,更多请关注www.sxiaw.com其它相关文章!