Java示例输出程序

Java示例输出程序,java,Java,我用Java写了一个程序,有2个接口和一个类 这两个接口具有相同的方法名 在主类中,我同时实现了接口和方法。 我想知道调用哪个接口方法 以下是示例代码:- public interface A { void print(); } public interface B { void print(); } public class C implements A, B { public static void main(String[] args) {

我用Java写了一个程序,有2个接口和一个类

这两个接口具有相同的方法名

在主类中,我同时实现了接口和方法。 我想知道调用哪个接口方法

以下是示例代码:-

public interface A {
    void print();
}

public interface B {        
    void print();
}

public class C implements A, B {

    public static void main(String[] args) {
            C c = new C();
            c.print();
    }

    public void print() {
        System.out.println("sample");
    }   
}

你调用类的方法

 public void print() {
    // TODO Auto-generated method stub
    System.out.println("sample");
} 
在上面的代码中,接口
A
B
是抽象接口,因为一些/所有方法都已声明但未定义


因此,在
C
类中,您没有调用这两个函数中的任何一个(这很简单,您如何能够调用从未定义过的方法?)。您要做的是定义
print
方法(因此给它一个主体),然后调用它(在
main
)。

它是
C
print()
<代码>抽象方法没有实现,本身也没有被调用,调用的是它们的一个实现

您可能需要研究所谓的静态绑定和动态绑定。在本例中,对于编译器&运行时,所有内容都在编译时,因此使用前者。基本上,将静态地确定要调用的方法/实现是
C
print()


动态绑定仍然意味着调用方法的具体实现,因此它不会选择接口方法本身,但是调用哪个方法的选择将在运行时完成。

首先以接口的方法调用的方式实现的接口,如果第一个接口旁边的另一个接口具有完全不调用的相同方法名。

“我想知道调用了哪个接口方法”=>两者都没有:调用了C的方法…可能与实际上没有调用接口方法的方法重复。您实现它并调用实现该方法的类的方法。@ RaviSaCigoudHaRy请考虑接受一个答案。HI在那里,虽然我有声明接口和技术不允许我们在接口内部定义方法,而可以声明,所以两个不同的接口可能有它们自己的同名声明性方法。
public interface A {
    void print();
}

public interface B {
    void print();
}