【发布时间】:2012-08-27 07:27:07
【问题描述】:
我想为实现的类的类型创建一个接口,强制实现它的每个类具有特定的功能。
假设我有 MyClassA、MyClassB、MyClassC 等类,它们都需要针对自己类型的函数:
在 MyClassA 中:
public class MyClassA implements MyClass {
MyClassA function(MyClassA x) {
doSomethingImplementedInMyClassA(x);
}
}
在 MyClassB 中:
public class MyClassB implements MyClass {
MyClassB function(MyClassB x) {
doSomethingImplementedInMyClassB(x);
}
}
问题是,接口MyClass需要这样的功能怎么写?
public interface MyClass {
MyClass function(MyClass x);
}
显然不起作用,因为返回类型是 MyClass 而不是它的实现。如何在 Java 中正确执行此操作?
【问题讨论】:
-
有什么原因不能在界面中添加
doSomethingImplementedInMyClass()? -
我不确定这会有什么帮助?
-
你想通过创建一个“强制实现它的每个类具有特定功能的接口,用于实现类的类型”来实现什么?您尝试如何解决问题可能是不可能的,但应该存在替代方案。
-
我正在尝试制作几种新类型的数字(如果你知道一些数学,实际上是“组元素”),我想实现 a.multiplyBy(b);和类似的方法。所以我会创建一个接口
GroupElement并要求GroupElement的每个实现将乘法例程定义为ImplementationOfGroupElement multiplyBy(ImplementationOfGroupElement b) {...}。