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

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

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

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

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 接口,我们可以用它来标记具体派生类型,以便在运行时更精确地进行类型检查和转换。

以上就是继承接口但不扩展方法的意义何在?的详细内容,更多请关注其它相关文章!