如何在 java 中实现具有相同签名的已实现接口的覆盖方法。并为每个接口给出不同的实现
How to implement an override method of implemented interfaces with the same signature in java. And give different implementations for each interface
假设我有两个具有相同方法签名的接口 InterfaceA 和 InterfaceB。
接口A:
public interface InterfaceA {
void printInterfaceName();
}
和接口 B:
public interface InterfaceB {
void printInterfaceName();
}
我有一个正在实现这两个接口的 Printing class
打印 class:
public class Printing implements InterfaceA, InterfaceB {
// want to override the printInterfaceName() method such way
// so that it will give an output which given in main method comment
}
我有一个 Main class,上面有一个 main 方法
public class Main {
public static void main(String[] args) {
InterfaceA a = new Printing();
InterfaceB b = new Printing();
a.printInterfaceName(); // this is should print `INTERFACE-A`
b.printInterfaceName(); // and this is should print `INTERFACE-B`
}
}
由于该方法不知道上下文(a.printInterfaceName() 或 b.printInterfaceName()),因此无法区分它们并打印 INTERFACE-A 或 INTERFACE-B.
据我所知,无论是反射还是instanceof都不能解决问题。在接口中使用默认方法也不起作用。
也许您可以写更多关于您的意图,以便提出不同的解决方案?
假设我有两个具有相同方法签名的接口 InterfaceA 和 InterfaceB。 接口A:
public interface InterfaceA {
void printInterfaceName();
}
和接口 B:
public interface InterfaceB {
void printInterfaceName();
}
我有一个正在实现这两个接口的 Printing class 打印 class:
public class Printing implements InterfaceA, InterfaceB {
// want to override the printInterfaceName() method such way
// so that it will give an output which given in main method comment
}
我有一个 Main class,上面有一个 main 方法
public class Main {
public static void main(String[] args) {
InterfaceA a = new Printing();
InterfaceB b = new Printing();
a.printInterfaceName(); // this is should print `INTERFACE-A`
b.printInterfaceName(); // and this is should print `INTERFACE-B`
}
}
由于该方法不知道上下文(a.printInterfaceName() 或 b.printInterfaceName()),因此无法区分它们并打印 INTERFACE-A 或 INTERFACE-B.
据我所知,无论是反射还是instanceof都不能解决问题。在接口中使用默认方法也不起作用。
也许您可以写更多关于您的意图,以便提出不同的解决方案?