出于好奇,是否存在允许您对类型进行设置算术以创建新类型的语言?就像是:
interface A {
void a();
void b();
}
interface B {
void b();
void c();
}
interface C = A & B; // has b()
interface D = A | B; // has a(), b() and c()
interface E = (A & B) ^ B; // has c()
我知道在某些语言中可以表达这些想法(即Java具有List<Comparable & Serializable>接口的统一性),但是我从未听说过支持类型算术的语言。谢谢!
CanWriteAndCompare extends Serializable, Comparable {}),我在考虑如何对此进行概括。
A或a B,并且两个实现看起来完全相同。在该方法中,我要调用可以采用A或的多态方法B,因此实现方式是相同的,但是由于必须采用两种不同的类型,因此需要两种实现方式。如果可以的话,这样会更容易myMethod(A | B aOrB)。
Or可以通过多重继承来模拟操作。