我可以在java中显式调用接口方法吗?如果没有,那么是否有解决方法?

我可以在java中显式调用接口方法吗?如果没有,那么是否有解决方法?,java,Java,这里我想为这两个接口提供不同的实现。我该怎么做呢。 在c#中,您可以显式指定重写方法用于哪个接口。我可以在java中这样做吗?如果不能,请用一个简单的示例指定解决此问题的方法 我想要的可以这样说。。。假设接口用于一个电视遥控器(接口b)和一个内部VCD播放器遥控器(接口c)……并且当我在一个遥控器(本例中为a类)中实现这两个功能时,我希望为在遥控器上单击的同一按钮(本例中为方法g())的电视和VCD提供不同的实现。当我重写g()时,它会被两个接口都重写。我如何明确地指出它用于哪个接口。我想为TV

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

我想要的可以这样说。。。假设接口用于一个电视遥控器(接口b)和一个内部VCD播放器遥控器(接口c)……并且当我在一个遥控器(本例中为a类)中实现这两个功能时,我希望为在遥控器上单击的同一按钮(本例中为方法g())的电视和VCD提供不同的实现。当我重写g()时,它会被两个接口都重写。我如何明确地指出它用于哪个接口。我想为TV和VCD播放器提供不同的实现(通过重写g())


E.X.右方向按钮将用作电视频道切换,但同一按钮将用作VCD的跳过按钮这是编辑问题的答案:

  • 一个接口只是说“这个类实现了方法X”。不管有多少接口声明了一个类上的相同方法,结果仍然是一样的:“这个类实现了方法X。”

  • 在您的案例中,问题在于概念设计。无论是在电视上还是在VCD上,按钮的行为实际上都是一样的:按下按钮时会触发一个动作。这应该是您的方法的行为:找到与按下的按钮关联的操作并执行它。看看在这种情况下,电视和VCD的效果如何?现在,封装动作行为的类不同了。您可能有许多此类:例如TVChannelChangeAction、Skip30SecAction等


  • 你能给出一个用两个你想调用的实现进行编译的例子吗?这是对你问题的一个很好的回答:我想实现的是显式接口实现..我能通过一个变通方法在java中实现吗..这是我想要的链接,请查看“显式接口实现”列名在这个链接中,该段的最后一句说:“在Java中,除了清理代码和重构一个或多个接口以避免名称冲突之外,没有其他方法可以解决这个问题。”在这种情况下,Java迫使开发人员进行一种实现更清晰的设计。这就是为什么我问是否有一种解决方法……因为我相信有一种解决方案;)同样,“除了清理代码和重构一个或多个接口以避免名称冲突之外,没有办法解决这个问题”
    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();
    }