विशेषता के साथ एक आप संरचनात्मक प्रकार साथ यह कर सकते हैं:
trait C {
self: { def aValue: Int
def bValue: Int } =>
def total = aValue + bValue
}
class ABC extends C {
def aValue = 1
def bValue = 1
}
इस्तेमाल किया प्रतिबिंब।
लेकिन, सबसे पहले आपको principle of least power की वजह से स्वयं प्रकारों का अधिक उपयोग नहीं करना चाहिए। सवाल से
तरीके का विस्तार अन्य टैट द्वारा बस जोड़ा जा सकता है:
trait C extends A with B{
def total = aValue + bValue
}
या स्पष्ट रूप से दोनों तरीकों टाइप करें:
trait C {
def aValue: Int
def bValue: Int
def total = aValue + bValue
}
कहाँ आत्म प्रकार उपयोग कैसे करें?
स्व-प्रकार आमतौर पर कक्षाओं के साथ उपयोग किया जाता है। वांछित वर्ग के उप-वर्ग होने की आवश्यकता के लिए यह एक अच्छा तरीका है।
ट्रिप के साथ स्वयं-प्रकार का एक अच्छा उपयोग भी है: जब आप बहु-विरासत के साथ कक्षा प्रारंभिकरण के क्रम में हेरफेर करना चाहते हैं।
स्रोत
2016-05-04 12:36:53