首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不影响java6中该接口的现有子类的情况下向接口添加新方法?

如何在不影响java6中该接口的现有子类的情况下向接口添加新方法?
EN

Stack Overflow用户
提问于 2014-09-28 15:36:14
回答 2查看 1.1K关注 0票数 3

以前,我遇到了在一个接口中添加一个方法的情况,这个接口已经被15+类使用了。在实现时,旧类不需要这个新方法,但是这个新方法是其他新类所必需的。在这里,需要考虑的是,这个新方法对于旧类是可选的,对于新开发的类是强制性的。解决这个问题的方法是什么?

我已经解决了如下问题:我已经创建了一个新接口,并在这个接口中声明了一个方法,并在新类中用旧接口实现了它,如果其他旧类需要这个新方法,它也会这样做。

Java8,我们有一个“默认处理这类情况的方法,但是在旧版本的Java中解决这种情况的其他方法是什么呢?”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-28 15:52:57

早期版本的Java没有任何方法来解决这个问题。这就是为什么在Java 8中引入默认方法的原因。

注意,JVM将很高兴地加载一个实现接口的类,即使它没有实际实现它的所有方法(也就是说,如果它是在添加新方法之前编译的):在运行时调用这些未实现的方法之一时只有一个异常。

这就是为什么旧的JDBC驱动程序仍然在较新的JRE中工作,即使它们没有实现所有新的JDBC方法.当然,除非你称之为这些新方法之一。

票数 3
EN

Stack Overflow用户

发布于 2020-05-25 09:02:55

为此,您编写了一个新接口,并使其成为旧接口的子接口,在其中声明新方法,现在创建新类并使其成为现有类的子类,并实现新创建的接口,并在这里区分您的新方法,这里需要额外的方法,用新的声明接口更改旧接口,例如子接口和传递子类的对象,现在您也可以调用新方法,旧方法也不会影响其他类的实现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26086532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档