কম্পিউটার টিউটোরিয়াল

স্কালাতে Traits এবং Abstract Classes-এর পার্থক্য

Traits

Traits হলো জাভার ইন্টারফেসের মতো এবং এটি trait কীওয়ার্ড ব্যবহার করে তৈরি করা হয়।

Abstract Class

Abstract Class হলো জাভার অ্যাবস্ট্র্যাক্ট ক্লাসের মতো এবং এটি abstract কীওয়ার্ড ব্যবহার করে তৈরি করা হয়।

উদাহরণ

নিচে স্কালাতে Traits এবং Abstract Classes-এর ব্যবহার দেখানো হলো:

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

নিচে স্কালাতে Traits এবং Abstract Classes-এর মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য দেওয়া হলো:

ক্রমিক নং মূল পয়েন্ট Trait Abstract Class
1 Multiple inheritance Trait মাল্টিপল ইনহেরিটেন্স সাপোর্ট করে। Abstract Class শুধু সিঙ্গেল ইনহেরিটেন্স সাপোর্ট করে।
2 Instance Trait একটি অবজেক্ট ইনস্ট্যান্সে যোগ করা যায়। Abstract class একটি অবজেক্ট ইনস্ট্যান্সে যোগ করা যায় না।
3 Constructor parameters Trait এর কনস্ট্রাক্টরে প্যারামিটার থাকতে পারে না। Abstract class প্যারামিটারাইজড কনস্ট্রাক্টর 가질 수 있습니다।
4 Interoperability Traits জাভার সাথে ইন্টারঅপারেবল যদি তাদের কোনো ইমপ্লিমেন্টেশন না থাকে। Abstract classes কোনো সীমাবদ্ধতা ছাড়াই জাভার সাথে ইন্টারঅপারেবল।
5 Stackability Traits স্ট্যাকেবল এবং ডাইনামিক্যালি বাউন্ড। Abstract classes স্ট্যাকেবল নয় এবং স্ট্যাটিক্যালি বাউন্ড।
  1. জাভাতে Abstract Class এবং Interface-এর পার্থক্য

  2. জাভাতে ইনহেরিটেন্স এবং কম্পোজিশনের পার্থক্য

  3. জাভাতে Thread এবং Runnable-এর পার্থক্য

  4. অ্যাবস্ট্রাক্ট ক্লাস এবং ইন্টারফেসের পার্থক্য