接口继承无需添加新方法的意义何在?
接口继承无新方法的意义
接口可以继承另一个接口,无需添加新的方法,这在某些情况下很有意义。
例如:
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。
总之,接口继承无新方法可以用于类型标记和过滤,为代码提供更强的可扩展性和可维护性。
以上就是接口继承无需添加新方法的意义何在?的详细内容,更多请关注其它相关文章!