जिज्ञासा से बाहर, क्या ऐसी भाषाएं हैं जो आपको नए प्रकार बनाने के लिए प्रकारों पर अंकगणित सेट करने की अनुमति देती हैं? कुछ इस तरह:
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()
मुझे पता है कि कुछ भाषाओं में इन विचारों को व्यक्त किया जा सकता है (यानी, जावा में List<Comparable & Serializable>इंटरफेस के मिलन के लिए), लेकिन मैंने कभी ऐसी भाषा के बारे में नहीं सुना है जो टाइप अंकगणित का समर्थन करती हो। धन्यवाद!
CanWriteAndCompare extends Serializable, Comparable {}) और मैं सोच रहा था कि इसे कैसे सामान्य किया जाए।
Aया एक ले सकती है B, दो कार्यान्वयन जो बिल्कुल एक जैसे दिखते हैं। इस पद्धति में मैं एक बहुरूपिक विधि कह रहा हूं जो एक Aया एक ले सकती है B, इसलिए कार्यान्वयन समान हैं, लेकिन चूंकि मुझे दो अलग-अलग प्रकार लेने हैं, इसलिए मुझे दो कार्यान्वयन की आवश्यकता है। यह आसान होता अगर मैं कर पाता myMethod(A | B aOrB)।
Orऑपरेशन कई विरासत द्वारा अनुकरण किया जा सकता है।