相关疑难解决方法(0)

使用相同的方法在类中实现两个接口.覆盖哪种接口方法?

两个具有相同方法名称和签名的接口.但是由单个类实现,那么编译器将如何识别哪个接口的方法是什么?

例如:

interface A{
  int f();
}

interface B{
  int f();
}

class Test implements A, B{   
  public static void main(String... args) throws Exception{   

  }

  @Override
  public int f() {  // from which interface A or B
    return 0;
  }
}   
Run Code Online (Sandbox Code Playgroud)

java overriding interface

223
推荐指数
6
解决办法
14万
查看次数

一个类实现两个接口.方法属于哪个接口?

有两个接口B,C每个接口都有相同的方法public m1()

class A implements B and C 
Run Code Online (Sandbox Code Playgroud)

如果类A必须实现方法m1(),实现的方法将是哪个接口?

java interface

7
推荐指数
1
解决办法
1290
查看次数

Java抽象类实现了一个接口,两者具有相同的方法

在看一些OOP资料时,我想到了这个让我有点困惑的问题:

考虑具有以下接口、抽象类和具体类:

package one;

public interface A {

    void doStuff();
}

package one;


public abstract class B implements A {

    public abstract void doStuff();


}

class C extends B{


    public void doStuff() {

    }
 }
Run Code Online (Sandbox Code Playgroud)

C除非提供 method 的实现,否则无法编译doStuff()。这里的问题是:

1- CdoStuff()类中的方法是接口A方法的实现,还是B类中的抽象方法?更具体地说:JVM 将如何将该函数视为接口或抽象类的调用函数?

doStuff()2-抽象类B中的抽象方法是否被认为是doStuff()接口A中方法的“实现” ?因此,类C必须实现抽象类的版本doStuff()而不是接口的版本?

java oop abstract-class interface multiple-inheritance

5
推荐指数
1
解决办法
6202
查看次数