Java 一个实现通用接口方法的类

Java 一个实现通用接口方法的类,java,interface,Java,Interface,只有一个问题让我感到困惑。。。 有两个接口A、B包含相同的方法methodC…和C类实现A和B。它应该实现哪个接口方法A或B 现在根据我的分析,我让莱克在课下说 interface A { /** * Doc A * **/ public void MethodA(); public String MethodB(); } interface B { /**

只有一个问题让我感到困惑。。。 有两个接口A、B包含相同的方法methodC…和C类实现A和B。它应该实现哪个接口方法A或B 现在根据我的分析,我让莱克在课下说

 interface  A {
        /**
         * Doc A
         * **/
        public void MethodA();

        public String MethodB();

    }

    interface  B {
        /**
         * Doc B
         * **/
        public String MethodA();

        public void MethodB();
    }

    class lucy implements A,B{

        @Override
        public String MethodA() {
            //To change body of implemented methods use File | Settings | File Templates.
            return null;
        }

        @Override
        public String MethodB() {
            //To change body of implemented methods use File | Settings | File Templates.
            return null;
        }
    }
输出:

你好 你好


假设我们有一个接口:

public interface A {

    public void firstMethod();

    public void secondMethod();
}
public interface B {

    public void firstMethod();

    public void secondMethod();
}
这个界面:

public interface A {

    public void firstMethod();

    public void secondMethod();
}
public interface B {

    public void firstMethod();

    public void secondMethod();
}
如果您创建一个实现这两个接口的类,它将被编译并正常工作

public class MyClass implements A, B {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }

    @Override
    public void firstMethod() {
        // some code here
    }

    @Override
    public void secondMethod() {
        // some code here
    }
}
但是,如果向MyClass添加方法firstMethod和secondMethod,但返回类型不同,则MyClass将无法编译

public class MyClass implements A, B {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }

    public String firstMethod() {
        return "";
    }

    public String secondMethod() {
        return "";
    }

    @Override
    public void firstMethod() {
        // some code here
    }

    @Override
    public void secondMethod() {
        // some code here
    }
}

为了编写方法签名,Java使用方法参数,但不使用返回类型。而这将导致方法已定义错误。因为从Java的角度来看方法:void firstMethod;字符串优先法;secondMethod的相同方法具有相同的签名。

它不会编译。我不知道你是怎么得到这个输出的。@LuiggiMendoza很好地忘记了代码,因为它是原始编码的,主要的问题还是概念性的:这不会编译,这就是为什么这个问题很奇怪。测试一下,有关系吗?来自A或B的方法没有实现。是的,这很重要。因为如果你测试它,编译器会给你答案:你不能。