मैं स्कैला के संदर्भ में मिक्सिन को समझने की कोशिश कर रहा हूं। विशेष रूप से मैं विरासत और मिक्सिन की अवधारणाओं के बीच अंतर जानना चाहता था। विकी का कहना है कि मिश्रण और विरासत की अवधारणाओं के बीच महत्वपूर्ण अंतर है और इसलिए मैं इसे समझना चाहता था।मिश्रण और विरासत के बीच क्या अंतर है?
wiki में Mixin की परिभाषा का कहना है:
एक मूल वर्ग के रूप में mixin वर्ग में कार्य करता है, वांछित कार्यशीलता हैं। एक सबक्लास तब इस कार्यक्षमता का उत्तराधिकारी या पुन: उपयोग कर सकता है, लेकिन विशेषज्ञता के साधन के रूप में नहीं। आम तौर पर, मिश्रित एक कठोर, एकल "एक" संबंध बनाने के बिना, वांछित कार्यक्षमता को बाल वर्ग में निर्यात करेगा। यहां मिश्रित और विरासत की अवधारणाओं के बीच महत्वपूर्ण अंतर है, जिसमें बाल वर्ग अभी भी मूल वर्ग की सभी विशेषताओं का उत्तराधिकारी हो सकता है, लेकिन बच्चे के बारे में अर्थशास्त्र "माता-पिता होने के बारे में" आवश्यक रूप से लागू नहीं होना चाहिए।
उपर्युक्त परिभाषा में, मैं बोल्ड में चिह्नित बयानों को समझने में सक्षम नहीं हूं। इसका क्या मतलब है कि
- एक उपवर्ग नहीं बल्कि विशेषज्ञता
- mixins में के साधन के रूप mixin में कार्यक्षमता के वारिस कर सकते हैं, बच्चे बच्चे के बारे में माता पिता के वर्ग की सभी सुविधाओं लेकिन अर्थ विज्ञान "एक प्रकार जा रहा है" विरासत माता-पिता को जरूरी नहीं जरूरी है। - एक बच्चा माता-पिता को कैसे बढ़ा सकता है और जरूरी नहीं कि एक तरह का अभिभावक? क्या ऐसा कोई उदाहरण है।
उपर्युक्त के बारे में किसी भी स्पष्टीकरण के लिए अग्रिम धन्यवाद।
स्कैला में, मिक्सिन को एक साफ संकलन-समय परिवर्तन के रूप में सोचें जो कुछ प्रकारों को अतिरिक्त तरीकों से सजाएगा। इस मामले में, जबकि स्कैला प्रकार चेकर के लिए "मिश्रित प्रकारों" का ट्रैक रखता है, विधि परिभाषाएं स्वयं * वास्तविक प्रकारों में * चपटा * होती हैं, इसलिए JVM कक्षाओं में कोई अभिभावक-बच्चा स्थापित नहीं होता है। विरासत आमतौर पर रनटाइम पॉलीमोर्फिक विधि संकल्प से जुड़ा होता है - लेकिन मिक्स्ड (बड़े पैमाने पर) ऑर्थोगोनल अवधारणाएं हैं। जावा 8 इंटरफ़ेस डिफ़ॉल्ट तरीके मिश्रित भी हैं। – user2864740
ऐसा लगता है कि [व्यापक संदर्भ में पहले पूछा गया था] (http://stackoverflow.com/questions/860245/mixin-vs-inheritance) (हालांकि मैं वहां उत्तरों से पूरी तरह संतुष्ट नहीं हूं)। – badcook