接口继承无需添加新方法的意义何在?

接口继承无需添加新方法的意义何在?

接口继承无新方法的意义

接口可以继承另一个接口,无需添加新的方法,这在某些情况下很有意义。

例如:

public interface a {
  void xx();
  string yy();
}

public interface b extends a {
}

此时,接口 b 继承了接口 a 的所有方法,但并没有添加任何新方法。这可能会让人疑惑,为什么需要创建这样的接口。

其实,这种继承方式相当于给派生自接口 b 的类型打上了 b 的标记。这样做的好处在于:

  • 类型过滤:可以方便地使用 b 接口作为类型过滤器,例如:
list<a> lista = ...;
list<b> listb = lista.stream()
  .filter(b.class::isinstance)
  .map(b.class::cast)
  .tolist();

通过这种方式,可以轻松地从列表 lista 中筛选出所有实现 b 接口的类型,并将它们转换为 b 类型。

  • 标记接口:b 接口还可以用作标记接口,表示实现该接口的类型具有特定的特性。例如:
public interface SerializableMarker {
}

通过实现 serializablemarker 接口,一个类型可以表明它实现了 java 序列化接口 java.io.serializable。

总之,接口继承无新方法可以用于类型标记和过滤,为代码提供更强的可扩展性和可维护性。

以上就是接口继承无需添加新方法的意义何在?的详细内容,更多请关注其它相关文章!