호기심에서 새로운 유형을 만들기 위해 유형에 산술을 설정할 수있는 언어가 있습니까? 다음과 같은 것 :
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 {}:). 이것을 일반화하는 방법을 생각하고있었습니다.
Aa 또는 a를 취할 수있는 메소드가있는 경우가 발생했습니다 B. 이 방법에서는 a A또는 a를 취할 수있는 다형성 메소드를 호출 B하므로 구현은 동일하지만 두 가지 유형을 취해야하므로 두 가지 구현이 필요합니다. 내가 할 수 있다면 더 쉬울 것이다 myMethod(A | B aOrB).
Or다중 상속으로 작업을 에뮬레이션 할 수 있습니다.