आप वास्तव में उन्हें तुरंत चालू नहीं करते हैं। जैसा कि आपने जावा के साथ समानांतर खींचा है, चलिए आगे बढ़ें। आप जावा में एक अमूर्त वर्ग या इंटरफ़ेस से बेनामी क्लास बनाने में सक्षम हैं। यह स्काला में लगभग एक ही है:
scala> trait A
defined trait A
scala> new A {}
res0: A = [email protected]
ध्यान दें कि घुंघराले ब्रेसिज़ अनिवार्य हैं जब आप एक विशेषता से एक वस्तु बना सकते हैं। उदाहरण के लिए, योन ऐसा नहीं कर सकते:
scala> new A
<console>:9: error: trait A is abstract; cannot be instantiated
new A
^
यह एक वर्ग के लिए पूरी तरह से काम करता है, जबकि:
scala> class B
defined class B
scala> new B
res2: B = [email protected]
बेशक
अगर आपके विशेषता में कुछ तत्वों को लागू नहीं किया जाता है, तो आप उन्हें लागू करने के लिए जब आप बनाने की जरूरत है ऑब्जेक्ट:
scala> trait C {def foo: Int}
defined trait C
scala> new C {}
<console>:9: error: object creation impossible, since method foo in trait C of type => Int is not defined
new C {}
^
scala> new C {def foo = 42}
res4: C = [email protected]
जावा: 'इंटरफ़ेस बार {}; बार बार = नया बार() {}; ' – soc