如何实现具有相同签名方法的两个不同接口
//第一个接口
interface InterfaceA{
public int methodOne(String str);
}
//第二接口
interface InterfaceB{
public int methodOne(String str);
}
//实现类
class ImplementationClass implements InterfaceA,InterfaceB {
// How can implements the both interface differently
public int methodOne(String str){
}
}
当我尝试直接实现时,它变成了两个接口方法的单一实现。
如何实现它们呢?
接口只是一个"合约"
它向一个接收方法声明。接收方法可以定义,嘿,我想接收一个具有这些方法的对象,这些方法接受这些参数并返回这个类型
如果接口重叠,它不会使契约无效。合约是一样的,你输入X,你得到Y。
public void foo(InterfaceB) {
...
}
期望实现接口B的对象,根据接口B的契约,该对象将具有一个名为methodOne的方法,该方法返回一个整数,并接受一个String作为参数。
public void bor(InterfaceA) {
...
}
期望一个对象实现InterfaceA,根据接口A的约定,该对象将具有一个名为methodOne的方法,该方法返回一个整数,并接受一个String作为参数。
由于需求重叠,因此不期望有不同的行为。你输入一个String,你得到一个int。对象如何做到这一点,取决于对象本身。对象只提供契约所要求的内容。
对象不知道它是通过哪个契约被调用的,也不应该知道。如果你想让不同的接口有不同的行为,你应该为不同但相似的接口使用不同的对象。