जिज्ञासा से बाहर, क्या ऐसी भाषाएं हैं जो आपको नए प्रकार बनाने के लिए प्रकारों पर अंकगणित सेट करने की अनुमति देती हैं? कुछ इस तरह:
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
ऑपरेशन कई विरासत द्वारा अनुकरण किया जा सकता है।