gpt4 book ai didi

java - 我可以在java中显式调用接口(interface)方法吗?如果没有那么有解决方法吗?

转载 作者:行者123 更新时间:2023-12-01 05:34:27 24 4
gpt4 key购买 nike

public class a implements b,c {

public void g()
{

}

public static void main(String[] args){

a object =new a(); //this overrides for both the methods in
// the interfaces b and c
object.g();

}

}
interface b
{
void g();
}
interface c
{
void g();
}

这里我想为这两个接口(interface)提供不同的实现。我该怎么做。在 c# 中,您可以显式指定重写的方法适用于哪个接口(interface)。我可以在 java 中执行此操作吗?如果不能,请通过一个简单的示例指定解决此问题的方法。

我想要的可以这样表述...假设这些接口(interface)适用于一个电视 Remote (接口(interface) b)和一个内部 VCD 播放器 Remote (接口(interface) c)...当我在一个 Remote (本例中为 A 类)我想为电视和 VCD 提供不同的实现,用于在 Remote 上单击相同的按钮(本例中为方法 g())。当我覆盖 g() 时,两个接口(interface)都会覆盖它。我如何明确提及它适用于哪个接口(interface)。我想为电视和 VCD 播放器提供不同的实现(通过重写 g())。

E.X.右方向按钮将用作电视的 channel 切换,但同一按钮将用作 VCD 的跳过按钮

最佳答案

这是已编辑问题的答案:

  1. 接口(interface)只是简单地说“这个类实现了方法 X”。无论有多少个接口(interface)声明了您在一个类上放置的相同方法,结果仍然是相同的:“这个类实现了方法 X”。

  2. 就您而言,问题出在概念设计上。无论是在电视上还是在 VCD 上,按钮的行为实际上都是相同的:按下时会触发一个 Action 。这应该是您的方法的行为:找到与按下的按钮关联的操作并执行它。看看在这种情况下,电视和 VCD 的情况是一样的吗?现在,封装操作行为的类有所不同。您可能有很多这样的类(class):例如TVChannelChangeAction、Skip30SecAction 等

关于java - 我可以在java中显式调用接口(interface)方法吗?如果没有那么有解决方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404172/

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