与父接口具有相同方法的子接口
Child interface with same method than parent
如果接口 B 扩展了接口 A,并提供了与接口 A 相同的方法,是否意味着该方法覆盖了另一个方法?
Edit:将单词 implements 更改为 extend 因为这是错误的,实际上并没有意思是写工具呵呵...
我在考试中找到的这个示例代码的目的是了解接口之间的扩展是如何工作的,这里要求的是提供 ConcreteClass 的主体,具体来说 class实现:解决方案在 class 的正文中,但我不明白的是 Interface_Y 中的 methodY(String z) 发生了什么,它是否被 methodX(String x) 覆盖在 Interface_Z 中,methodY(String 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){
}
}
but what I don't understand is what happens to the methodY(String z)
它没有任何反应,因为 Interface_Y
该方法所属的位置不在 ConcreteClass
的类型层次结构中。
Interface_X
/ \ Runnable
Interface_Y Interface_Z /
\ /
AbstractClass /
\ /
ConcreteClass
接口只是合同或骨架。请看这个。
https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html
首先:接口从不实现接口。它总是扩展它。
如果一个非抽象 class 实现了两个具有相同签名方法的接口。它必须通过合同给出相同的实现。否则编译器会报错。
你的问题有答案吗? Interface_Y 的 methodY 发生了什么?
任何实现此接口的非抽象 class 都需要提供实现。
如果接口 B 扩展了接口 A,并提供了与接口 A 相同的方法,是否意味着该方法覆盖了另一个方法?
Edit:将单词 implements 更改为 extend 因为这是错误的,实际上并没有意思是写工具呵呵...
我在考试中找到的这个示例代码的目的是了解接口之间的扩展是如何工作的,这里要求的是提供 ConcreteClass 的主体,具体来说 class实现:解决方案在 class 的正文中,但我不明白的是 Interface_Y 中的 methodY(String z) 发生了什么,它是否被 methodX(String x) 覆盖在 Interface_Z 中,methodY(String 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){
}
}
but what I don't understand is what happens to the methodY(String z)
它没有任何反应,因为 Interface_Y
该方法所属的位置不在 ConcreteClass
的类型层次结构中。
Interface_X
/ \ Runnable
Interface_Y Interface_Z /
\ /
AbstractClass /
\ /
ConcreteClass
接口只是合同或骨架。请看这个。 https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html
首先:接口从不实现接口。它总是扩展它。
如果一个非抽象 class 实现了两个具有相同签名方法的接口。它必须通过合同给出相同的实现。否则编译器会报错。
你的问题有答案吗? Interface_Y 的 methodY 发生了什么?
任何实现此接口的非抽象 class 都需要提供实现。