只有一个问题让我感到困惑......
有两个接口A,B,它们包含相同的方法methodC()...而C类实现A& B。它应该实现哪种接口方法A或B
现在根据我的分析,我在下面说了lyk ..
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;
}
}
输出:
您好 你好
答案 0 :(得分:0)
假设我们有一个界面:
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
}
}
但是,如果您将方法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();
和String firstMethod();
(secondMethod()
方法相同)具有相同的签名。