gpt4 book ai didi

java - 是否可以从我的代码中重构另一个包中的 Java 接口(interface)?

转载 作者:搜寻专家 更新时间:2023-11-01 01:46:52 24 4
gpt4 key购买 nike

我在我的 Java 项目中使用(开源)API 并从中引用接口(interface)。一个接口(interface) (Foo) 在 API 和使用它的项目中都被广泛使用。对于我的项目,我想使用一个只公开 Foo 方法子集的接口(interface),这样 Foo 就会从我的新接口(interface)继承方法()。我根本不想更改 Foo 的界面;相反,我希望能够编写实现 Bar 的类,然后将它们与实现 Foo 的类一起操作,就好像它们都是 Bar.

由于 API 在不同的包中,是否有任何方法可以使 Bar 成为所有 Foo 的父类(super class)(接口(interface))?

最佳答案

I'd like to be able to write classes which implement Bar, and then manipulate those along with classes which implement Foo as if they are all Bar.

您可以创建一个实现 Foo 的抽象 Bar。您将放弃两者共享的方法并实现 Bar 不共享的方法,以便它们抛出类似 UnsupportedOperationException 的异常。

但是您不能像操纵 Bar 一样操纵 Foo;这是相反的方式。您无法按照提议的方式满足里氏替换原则。

关于java - 是否可以从我的代码中重构另一个包中的 Java 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6987121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com