Java 一个实现通用接口方法的类
只有一个问题让我感到困惑。。。 有两个接口A、B包含相同的方法methodC…和C类实现A和B。它应该实现哪个接口方法A或B 现在根据我的分析,我让莱克在课下说Java 一个实现通用接口方法的类,java,interface,Java,Interface,只有一个问题让我感到困惑。。。 有两个接口A、B包含相同的方法methodC…和C类实现A和B。它应该实现哪个接口方法A或B 现在根据我的分析,我让莱克在课下说 interface A { /** * Doc A * **/ public void MethodA(); public String MethodB(); } interface B { /**
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;
}
}
输出:
你好
你好
假设我们有一个接口:
public interface A {
public void firstMethod();
public void secondMethod();
}
public interface B {
public void firstMethod();
public void secondMethod();
}
这个界面:
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
}
}
但是,如果向MyClass添加方法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;字符串优先法;secondMethod的相同方法具有相同的签名。它不会编译。我不知道你是怎么得到这个输出的。@LuiggiMendoza很好地忘记了代码,因为它是原始编码的,主要的问题还是概念性的:这不会编译,这就是为什么这个问题很奇怪。测试一下,有关系吗?来自A或B的方法没有实现。是的,这很重要。因为如果你测试它,编译器会给你答案:你不能。