मैं सोच रहा हूं कि क्या सभी तरीकों से Trait
एक वर्ग में आयात किया जाता है जो इसे विस्तारित करता है Trait
या सिर्फ इस्तेमाल किए गए लोग?
और निर्भरता इंजेक्शन के साथ?
उत्तर:
उत्तर № 1 के लिए 1चिह्नित विधियों को छोड़कर private
हर दूसरी विधि विस्तारित इकाई के साथ उपलब्ध होगी। विस्तारित इकाई अपरिवर्तित को ओवरराइड या छोड़ने का विकल्प चुन सकती है, इस मामले में इस इकाई के बच्चों को इसका सामना करना पड़ता है।
trait A {
private def a: Int = 1 //not available
protected def b: Int = 2 //available inside extending entity
def d: Int = 3 //available everywhere
}
class B extends A {}
val x = new B()
x.a //error
x.b //error
x.d //prints 3
निर्भरता इंजेक्शन पर आ रहा है
आइए कहें कि ए और बी दो इंटरफेस या लक्षण हैं जो अभिभावक / बाल संबंध नहीं रखते हैं।
यदि आप एक इकाई को दूसरे में इंजेक्ट करते हैं। उस इकाई के सभी सार्वजनिक तरीकों को दूसरे द्वारा एक्सेस किया जा सकता है