Inheritance, Polymorphism, এবং Interfaces

Computer Programming - গ্রুভি (Groovy) Object-Oriented Programming in Groovy (অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং) |
165
165

Inheritance, Polymorphism, এবং Interfaces in Groovy

Groovy তে Inheritance, Polymorphism, এবং Interfaces অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর মূল নীতি যা কোড পুনঃব্যবহারযোগ্য, মডুলার এবং ডায়নামিক প্রোগ্রামিংয়ের জন্য সহায়ক। Groovy তে এই ধারণাগুলি Java এর মতো কাজ করে, তবে এর সিনট্যাক্স অনেকটা সহজ ও সংক্ষিপ্ত।

এখানে Inheritance, Polymorphism, এবং Interfaces সম্পর্কে বিস্তারিত আলোচনা করা হলো।


1. Inheritance (ইনহেরিটেন্স)

ইনহেরিটেন্স হল একটি অবজেক্ট-ওরিয়েন্টেড ধারণা যেখানে একটি ক্লাস অন্য ক্লাসের বৈশিষ্ট্য (প্রপার্টি এবং মেথড) উত্তরাধিকারসূত্রে পায়। এটি কোড পুনঃব্যবহারযোগ্যতার জন্য সহায়ক, কারণ আমরা বিদ্যমান কোডের উপর নতুন বৈশিষ্ট্য বা ফাংশনালিটি যোগ করতে পারি।

1.1 ইনহেরিটেন্স উদাহরণ

// Superclass
class Animal {
    String name

    def speak() {
        println "$name makes a sound"
    }
}

// Subclass
class Dog extends Animal {
    def speak() {
        println "$name barks"
    }
}

def dog = new Dog(name: "Rex")
dog.speak()  // Output: Rex barks

এখানে, Dog ক্লাস Animal ক্লাস থেকে ইনহেরিট করেছে এবং speak() মেথডটি ওভাররাইড করেছে।

1.2 Super Keyword

আপনি super কিওয়ার্ড ব্যবহার করে সুপার ক্লাসের মেথড অথবা কন্সট্রাক্টর কল করতে পারেন।

class Animal {
    String name

    Animal(String name) {
        this.name = name
    }

    def speak() {
        println "$name makes a sound"
    }
}

class Dog extends Animal {
    Dog(String name) {
        super(name)
    }

    def speak() {
        super.speak()  // Calling the speak method of Animal class
        println "$name barks"
    }
}

def dog = new Dog("Rex")
dog.speak()

এখানে, Dog ক্লাসে super.speak() ব্যবহার করে Animal ক্লাসের speak() মেথড কল করা হয়েছে।


2. Polymorphism (পলিমরফিজম)

পলিমরফিজম হল এমন একটি ধারণা যেখানে একাধিক ক্লাস একই নামের মেথড ব্যবহার করতে পারে, তবে তাদের কার্যকারিতা ভিন্ন হতে পারে। Groovy তে পলিমরফিজম মেথড ওভাররাইডিং এবং ওভারলোডিং এর মাধ্যমে অর্জিত হয়।

2.1 মেথড ওভাররাইডিং (Method Overriding)

class Animal {
    def sound() {
        println "Animal makes a sound"
    }
}

class Dog extends Animal {
    @Override
    def sound() {
        println "Dog barks"
    }
}

class Cat extends Animal {
    @Override
    def sound() {
        println "Cat meows"
    }
}

def dog = new Dog()
dog.sound()  // Output: Dog barks

def cat = new Cat()
cat.sound()  // Output: Cat meows

এখানে, Dog এবং Cat ক্লাস দুটি sound() মেথডের কার্যকারিতা ভিন্নভাবে বাস্তবায়ন করেছে, যদিও মেথডের নাম এক। এটি পলিমরফিজম

2.2 পলিমরফিক আচরণ (Polymorphic Behavior)

Groovy তে আপনি একই ক্লাসের অবজেক্ট ব্যবহার করে বিভিন্ন আচরণ দেখতে পারেন:

def animal = new Dog()
animal.sound()  // Output: Dog barks

animal = new Cat()
animal.sound()  // Output: Cat meows

এখানে, animal অবজেক্টের রেফারেন্স আলাদা আলাদা ক্লাসের (Dog এবং Cat) উপর নির্ভর করে ভিন্ন ভিন্ন আচরণ প্রদর্শন করছে।


3. Interfaces (ইন্টারফেস)

Groovy তে ইন্টারফেস একটি সংজ্ঞায়িত চুক্তি যা কোন ক্লাসের মেথডের সিগনেচার সংরক্ষণ করে। একটি ক্লাস একাধিক ইন্টারফেস ইমপ্লিমেন্ট (অথবা বাস্তবায়ন) করতে পারে এবং এতে থাকা মেথডগুলির বাস্তবায়ন প্রদান করতে পারে। Groovy তে ইন্টারফেসের মাধ্যমে ক্লাসগুলির মধ্যে কম্পোজিশন এবং নমনীয়তা বৃদ্ধি করা হয়।

3.1 ইন্টারফেস ডিফাইন করা

interface Animal {
    def speak()
}

class Dog implements Animal {
    def speak() {
        println "The dog barks"
    }
}

class Cat implements Animal {
    def speak() {
        println "The cat meows"
    }
}

def dog = new Dog()
dog.speak()  // Output: The dog barks

def cat = new Cat()
cat.speak()  // Output: The cat meows

এখানে, Animal একটি ইন্টারফেস এবং DogCat ক্লাস গুলি এই ইন্টারফেস ইমপ্লিমেন্ট করেছে। প্রতিটি ক্লাস তাদের নিজস্ব speak() মেথডের বাস্তবায়ন দিয়েছে।

3.2 একাধিক ইন্টারফেস ইমপ্লিমেন্ট করা

Groovy তে একটি ক্লাস একাধিক ইন্টারফেসও ইমপ্লিমেন্ট করতে পারে:

interface Animal {
    def speak()
}

interface Pet {
    def play()
}

class Dog implements Animal, Pet {
    def speak() {
        println "The dog barks"
    }
    
    def play() {
        println "The dog plays"
    }
}

def dog = new Dog()
dog.speak()  // Output: The dog barks
dog.play()   // Output: The dog plays

এখানে, Dog ক্লাস দুটি ইন্টারফেস (Animal এবং Pet) ইমপ্লিমেন্ট করেছে এবং তাদের মেথডগুলির বাস্তবায়ন প্রদান করেছে।


সারসংক্ষেপ

  • ইনহেরিটেন্স: Groovy তে একটি ক্লাস অন্য একটি ক্লাস থেকে বৈশিষ্ট্য (প্রপার্টি এবং মেথড) উত্তরাধিকারসূত্রে পায়, যা কোড পুনঃব্যবহারযোগ্যতার জন্য সহায়ক।
  • পলিমরফিজম: একাধিক ক্লাস একই নামের মেথড ব্যবহার করতে পারে এবং তাদের কার্যকারিতা ভিন্ন হতে পারে। এটি কোডে নমনীয়তা আনে।
  • ইন্টারফেস: ইন্টারফেস হল একটি চুক্তি যা ক্লাসের মেথডের সিগনেচার নির্ধারণ করে। Groovy তে ক্লাস একাধিক ইন্টারফেস ইমপ্লিমেন্ট করতে পারে।

Groovy তে Inheritance, Polymorphism, এবং Interfaces এর সহজ সিনট্যাক্স এবং শক্তিশালী ব্যবহারের মাধ্যমে কোড পুনঃব্যবহার, নমনীয়তা এবং মডুলারিটি সহজতর হয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion