Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

स्काला में ट्रेट्स और एब्स्ट्रैक्ट क्लासेस के बीच अंतर

ट्रेट्स (Traits)

ट्रेट्स जावा में इंटरफेस के समान होते हैं और trait कीवर्ड का उपयोग करके बनाए जाते हैं।

एब्स्ट्रैक्ट क्लास (Abstract Class)

एब्स्ट्रैक्ट क्लास जावा में एब्स्ट्रैक्ट क्लासेस के समान होती है और abstract कीवर्ड का उपयोग करके बनाई जाती है।

उदाहरण

स्काला में ट्रेट्स और एब्स्ट्रैक्ट क्लासेस के उपयोग को दिखाने वाला निम्न प्रोग्राम है।

trait SampleTrait { 
    // Abstract method 
    def test 
    // Non-Abstract method 
    def tutorials() { 
        println("Traits tutorials") 
    } 
} 

abstract class SampleAbstractClass { 
    // Abstract method 
    def test 
    // Non-abstract method 
    def tutorials() { 
        println("Abstract Class tutorial") 
    } 
} 

class Tester extends SampleAbstractClass { 
    def test() { 
        println("Welcome to Tutorialspoint") 
    } 
} 

class TraitTester extends SampleTrait { 
    def test() { 
        println("Welcome to Tutorialspoint") 
    } 
} 

object HelloWorld { 
    // Main method 
    def main(args: Array[String]) { 
        var obj = new Tester() 
        obj.tutorials() 
        obj.test() 
        var obj1 = new TraitTester() 
        obj1.tutorials() 
        obj1.test() 
    } 
}

आउटपुट

Abstract Class tutorial Welcome to Tutorialspoint Traits tutorials Welcome to Tutorialspoint

स्काला में ट्रेट्स और एब्स्ट्रैक्ट क्लासेस के बीच कुछ महत्वपूर्ण अंतर निम्नलिखित हैं।

क्र. सं. मुख्य बिंदु ट्रेट (Trait) एब्स्ट्रैक्ट क्लास
1 मल्टीपल इनहेरिटेंस ट्रेट मल्टीपल इनहेरिटेंस का समर्थन करता है। एब्स्ट्रैक्ट क्लास केवल सिंगल इनहेरिटेंस का समर्थन करती है।
2 इंस्टेंस ट्रेट को ऑब्जेक्ट इंस्टेंस में जोड़ा जा सकता है। एब्स्ट्रैक्ट क्लास को ऑब्जेक्ट इंस्टेंस में नहीं जोड़ा जा सकता।
3 कंस्ट्रक्टर पैरामीटर्स ट्रेट के कंस्ट्रक्टर में पैरामीटर्स नहीं हो सकते। एब्स्ट्रैक्ट क्लास में पैरामीटराइज्ड कंस्ट्रक्टर हो सकता है।
4 इंटरऑपरेबिलिटी ट्रेट्स जावा के साथ इंटरऑपरेबल हैं यदि उनका कोई कार्यान्वयन नहीं है। एब्स्ट्रैक्ट क्लासेस बिना किसी प्रतिबंध के जावा के साथ इंटरऑपरेबल हैं।
5 स्टैकेबिलिटी ट्रेट्स स्टैकेबल हैं और डायनामिकली बाउंड होते हैं। एब्स्ट्रैक्ट क्लासेस स्टैकेबल नहीं हैं और स्टैटिकली बाउंड होती हैं।
  1. - Java में इनहेरिटेंस और कंपोजिशन के बीच अंतर

    कंपोजिशन एक डिज़ाइन तकनीक है जिसमें आपकी क्लास में दूसरी क्लास का इंस्टेंस आपकी क्लास के फील्ड के रूप में हो सकता है। इनहेरिटेंस एक मैकेनिज्म है जिसके तहत एक ऑब्जेक्ट क्लास को एक्सटेंड करके पैरेंट ऑब्जेक्ट के गुण और व्यवहार प्राप्त कर सकता है। कंपोजिशन और इनहेरिटेंस दोनों क्लास को संबंधित करके कोड

  1. - जावा में Thread और Runnable के बीच अंतर

    थ्रेड एक्जीक्यूशन का नया थ्रेड बनाने के दो तरीके हैं। एक है Thread क्लास का सबक्लास घोषित करना। इस सबक्लास को Thread क्लास के run मेथड को ओवरराइड करना चाहिए। सबक्लास का इंस्टेंस तब एलोकेट और स्टार्ट किया जा सकता है। थ्रेड बनाने का दूसरा तरीका है Runnable इंटरफेस को इम्प्लीमेंट करने वाली क्लास घोषित

  1. - एब्स्ट्रैक्ट क्लास और इंटरफेस में अंतर

    एक एब्स्ट्रैक्ट क्लास में इंस्टेंस मेथड्स हो सकते हैं जो डिफ़ॉल्ट व्यवहार लागू करते हैं। एक इंटरफेस केवल कॉन्स्टेंट्स और इंस्टेंस मेथड्स घोषित कर सकता है, लेकिन डिफ़ॉल्ट व्यवहार लागू नहीं कर सकता और सभी मेथड्स अंतर्निहित रूप से एब्स्ट्रैक्ट होते हैं। एक इंटरफेस के सभी मेंबर्स पब्लिक होते हैं और कोई