继承接口但不扩展方法的意义何在?

ID:16755 / 打印

继承接口但不扩展方法的意义何在?

接口继承不扩展方法的意义

在一个场景中,我们遇到如下代码:

interface a {     void xx();     string yy(); }  interface b extends a { }

对于 java 初学者来说,一个疑问油然而生:既然接口 b 继承了所有 a 的方法,在后续扩展中可以直接使用 a,那么创建 b 有什么意义?

其实,b 继承 a 不仅仅只是方法的继承,还意味着:

类型标记

b 的存在给出了一个类型标记。对于从 b 派生的类型,可以在类型过滤时派上用场。例如,我们可以编写代码:

List<A> listA = new ArrayList<>(); List<B> listB = new ArrayList<>();  if (listA instanceof List<B>) {     // 类型转换安全 }

如果没有 b 接口,类型过滤将变得困难,因为 a 中的方法会在 list 和 list 中都可用。

通过引入 b 接口,我们可以用它来标记具体派生类型,以便在运行时更精确地进行类型检查和转换。

上一篇: 如何使用 LEFT JOIN 操作符在 Java SQL 中查询多个表并返回特定字段,避免返回 Null 值?
下一篇: 为什么同一个 Java 类代码在不同测试场景下表现出线程安全和不安全两种结果?

作者:admin @ 24资源网   2024-11-27

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。