Java 与父接口具有相同方法的子接口

Java 与父接口具有相同方法的子接口,java,interface,abstract-class,Java,Interface,Abstract Class,如果接口B扩展了接口A,并提供了与接口A相同的方法,这是否意味着该方法将写入另一个方法 编辑:将单词implements更改为extend,因为这是错误的,实际上并不是要写implementhehe 我在考试中发现的这个示例代码的目的是了解接口之间的扩展是如何工作的,这里要求的是提供Concrete类的主体,特别是类必须实现哪些方法:解决方案在类的主体中,但我不理解的是methodY发生了什么(字符串z)在接口_Y中,它是否被接口_Z中的methodX(字符串x)覆盖,methodY(字符串Z)

如果接口B扩展了接口A,并提供了与接口A相同的方法,这是否意味着该方法将写入另一个方法

编辑:将单词implements更改为extend,因为这是错误的,实际上并不是要写implementhehe

我在考试中发现的这个示例代码的目的是了解接口之间的扩展是如何工作的,这里要求的是提供Concrete类的主体,特别是类必须实现哪些方法:解决方案在类的主体中,但我不理解的是methodY发生了什么(字符串z)在接口_Y中,它是否被接口_Z中的methodX(字符串x)覆盖,methodY(字符串Z)是否也应该在ConcreteClass必须实现的方法列表中,或者当涉及到被覆盖的可能性时,方法的名称是否无关紧要

interface Interface_X{
    public int methodX(int x);
}

interface Interface_Y extends Interface_X{
    public void methodY(String z);
    public int methodX(int y);
}

interface Interface_Z extends Interface_X{
    public void methodX(String x);
    public int methodX(int y);
}

abstract class AbstractClass implements Interface_Z, Runnable{
    public abstract int methodX();
    public int methodX(int c) {
        return 0;    
    } 
}

public class ConcreteClass extends AbstractClass{

    @Override
    public void run(){

    }

    @Override
    public int methodX(){
        return 0;
    }

    @Override
    public void methodX(String z){

    }
}
但我不明白的是,methodY(字符串z)发生了什么

由于该方法所属的
接口不在
ConcreteClass
的类型层次结构中,因此它不会发生任何变化

        Interface_X 
       /           \             Runnable
Interface_Y   Interface_Z           /
                     \             /
                AbstractClass     /
                       \         /
                      ConcreteClass

接口只是契约或骨架。请看这个。

首先:接口从不实现接口。它总是扩展它

如果一个非抽象类实现了两个具有相同签名的方法的接口。它必须以合同的形式实施。否则编译器会抱怨

回答你的问题?接口的方法会发生什么变化


实现此接口的任何非抽象类都需要提供实现

覆盖,而不是覆盖。但是是的。新的取代了旧的。就像一个小音符。一个接口不能实现另一个接口,你的意思是扩展。“但我不明白的是,
接口中的
方法(String z)
会发生什么,它会被
接口中的
方法x(String x)
覆盖吗?”-这是两个不同的方法,都不会覆盖另一个。为了重写方法,签名(即名称和参数类型)必须相等。--代码注释:在Java中,类-enum-和接口名称是用(
interface_X
->interfaceex`)写的。请看@khachik-answer,这解释了原因。@DA因为,
ConcreteClass
没有实现
interface_Y