java - 两个接口(interface)需要实现同名方法

标签 java

如果两个接口(interface)需要实现同名的方法,则method()会被调用两次。 我需要为 2 个不同的接口(interface)实现 2 个方法,如何实现这两个方法来执行不同的操作?

public class MainClass implements BarObj.BarInt, FooObj.FooInt{

    MainClass(){

    }

    void trigger()
    {
        new BarObj(this);
        new FooObj(this);
    }

    @Override
    public void method() {
        System.out.println("I DONT KNOW WHICH METHOD");
    } 

    public static void main(String[] args) {
        new MainClass().trigger();
    }
}

public class BarObj {
    interface BarInt
    {
        void method();
    }
    public BarObj(BarInt _barInt)
    {
        _barInt.method();
    }
}


public class FooObj {
    interface FooInt
    {
        public void method();
    }
    public FooObj(FooInt _fooInt)
    {
        _fooInt.method();
    }
}

最佳答案

你不能

但是要解决您的问题,您可以执行下一步。

  1. 删除实现 BarObj.BarInt、FooObj.FooInt
  2. 删除方法方法
  3. 更改触发方法

它应该看起来像这样

void trigger()
{
    new BarObj(new BarObj.BarInt(){
        @Override
        public void method() {
            System.out.println("NOW I DO KNOW WHICH METHOD");
            System.out.println("I'm bar");
        }
    });
    new FooObj(new FooObj.FooInt(){
        @Override
        public void method() {
            System.out.println("NOW I DO KNOW WHICH METHOD");
            System.out.println("I'm foo");
        }
    });
}

它使用匿名类,您可以通过谷歌搜索了解更多详细信息。

关于java - 两个接口(interface)需要实现同名方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45100587/

相关文章:

java - 拆分、丰富和组合

java - 如何编写 Java 注释处理器?

java - Java 中正则表达式随机匹配而不是引号周围

java - 使用 spock 测试重载的 java 方法

java - 在 android studio 中作为渐变的图标颜色

java - 正则表达式不会从字符串中删除字符

Java 执行正则表达式

java - 更改背景颜色 Java Me

java - Tomcat 中的 JMS : creation a queue per client?

java - JUnit Suite 内的日志信息