◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
接口继承无新方法的意义
接口可以继承另一个接口,无需添加新的方法,这在某些情况下很有意义。
例如:
public interface a { void xx(); string yy(); } public interface b extends a { }
此时,接口 b 继承了接口 a 的所有方法,但并没有添加任何新方法。这可能会让人疑惑,为什么需要创建这样的接口。
其实,这种继承方式相当于给派生自接口 b 的类型打上了 b 的标记。这样做的好处在于:
list<a> lista = ...; list<b> listb = lista.stream() .filter(b.class::isinstance) .map(b.class::cast) .tolist();
通过这种方式,可以轻松地从列表 lista 中筛选出所有实现 b 接口的类型,并将它们转换为 b 类型。
public interface SerializableMarker { }
通过实现 serializablemarker 接口,一个类型可以表明它实现了 java 序列化接口 java.io.serializable。
总之,接口继承无新方法可以用于类型标记和过滤,为代码提供更强的可扩展性和可维护性。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。