Inheritance এর ধারণা এবং এর প্রকারভেদ (Single, Multiple, Multilevel, Hierarchical, এবং Hybrid)?

Java এর OOPs Concepts সম্পর্কিত প্রশ্নাবলী - জাভা ইন্টারভিউ প্রশ্ন (Java Interview Questions) - Java Technologies

438

Inheritance (উত্তরাধিকার) হল একটি OOP (Object-Oriented Programming) ধারণা, যেখানে একটি ক্লাস (subclass বা derived class) অন্য ক্লাস (superclass বা base class) এর বৈশিষ্ট্য (properties) এবং আচরণ (methods) উত্তরাধিকার সূত্রে গ্রহণ করে। এটি কোড পুনঃব্যবহারযোগ্যতা, লুকানো (abstraction), এবং দ্রুত ডেভেলপমেন্টে সহায়তা করে।

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

Inheritance এর প্রকারভেদ:

  1. Single Inheritance (একক উত্তরাধিকার):
    • ধারণা: Single Inheritance হল একটি পরিস্থিতি যেখানে একটি সাবক্লাস শুধুমাত্র একটিই সুপারক্লাস থেকে বৈশিষ্ট্য এবং আচরণ উত্তরাধিকার পায়।
    • উদাহরণ:

      class Animal {  
          void eat() {  
              System.out.println("This animal eats food.");  
          }  
      }  
      class Dog extends Animal {  
          void bark() {  
              System.out.println("Dog barks.");  
          }  
      }  
      public class Test {  
          public static void main(String args[]) {  
              Dog d = new Dog();  
              d.eat();  // Animal class method  
              d.bark(); // Dog class method  
          }  
      }
      
    • বিবরণ: এখানে Dog ক্লাসটি Animal ক্লাস থেকে eat() মেথড উত্তরাধিকার পেয়েছে এবং bark() মেথডটি নিজে থেকে সংজ্ঞায়িত করেছে।
  2. Multiple Inheritance (একাধিক উত্তরাধিকার):
    • ধারণা: Multiple Inheritance হল একটি পরিস্থিতি যেখানে একটি ক্লাস একাধিক সুপারক্লাস থেকে বৈশিষ্ট্য এবং আচরণ উত্তরাধিকার পায়। Java তে সরাসরি একাধিক ক্লাসের মাধ্যমে Multiple Inheritance সমর্থিত নয়, তবে আপনি এটি Interfaces ব্যবহার করে অর্জন করতে পারেন।
    • উদাহরণ (Interfaces এর মাধ্যমে):

      interface Animal {  
          void eat();  
      }  
      interface Sound {  
          void makeSound();  
      }  
      class Dog implements Animal, Sound {  
          public void eat() {  
              System.out.println("Dog eats food.");  
          }  
          public void makeSound() {  
              System.out.println("Dog barks.");  
          }  
      }  
      public class Test {  
          public static void main(String args[]) {  
              Dog d = new Dog();  
              d.eat();  // Animal interface method  
              d.makeSound();  // Sound interface method  
          }  
      }
      
    • বিবরণ: এখানে Dog ক্লাসটি দুটি ইন্টারফেস (Animal এবং Sound) ইমপ্লিমেন্ট করে এবং দুটি আলাদা আচরণ অর্জন করছে।
  3. Multilevel Inheritance (বহুতল উত্তরাধিকার):
    • ধারণা: Multilevel Inheritance হল একটি পরিস্থিতি যেখানে একটি ক্লাস একটি সুপারক্লাস থেকে উত্তরাধিকার পায় এবং সেই ক্লাস আবার অন্য একটি ক্লাসকে উত্তরাধিকার দেয়। এটি "ধাপে ধাপে" উত্তরাধিকার প্রদানের একটি পদ্ধতি।
    • উদাহরণ:

      class Animal {  
          void eat() {  
              System.out.println("This animal eats food.");  
          }  
      }  
      class Dog extends Animal {  
          void bark() {  
              System.out.println("Dog barks.");  
          }  
      }  
      class BabyDog extends Dog {  
          void weep() {  
              System.out.println("Baby dog weeps.");  
          }  
      }  
      public class Test {  
          public static void main(String args[]) {  
              BabyDog bd = new BabyDog();  
              bd.eat();  // Animal class method  
              bd.bark(); // Dog class method  
              bd.weep(); // BabyDog class method  
          }  
      }
      
    • বিবরণ: এখানে BabyDog ক্লাসটি প্রথমে Dog থেকে এবং তারপর Animal ক্লাস থেকে বৈশিষ্ট্য এবং আচরণ উত্তরাধিকার পেয়েছে।
  4. Hierarchical Inheritance (হায়ারারকিকাল উত্তরাধিকার):
    • ধারণা: Hierarchical Inheritance হল একটি পরিস্থিতি যেখানে একটি সুপারক্লাস একাধিক সাবক্লাসের জন্য সাধারণ বৈশিষ্ট্য এবং আচরণ সরবরাহ করে। এই ক্ষেত্রে একাধিক ক্লাস একই সুপারক্লাস থেকে উত্তরাধিকার পায়।
    • উদাহরণ:

      class Animal {  
          void eat() {  
              System.out.println("This animal eats food.");  
          }  
      }  
      class Dog extends Animal {  
          void bark() {  
              System.out.println("Dog barks.");  
          }  
      }  
      class Cat extends Animal {  
          void meow() {  
              System.out.println("Cat meows.");  
          }  
      }  
      public class Test {  
          public static void main(String args[]) {  
              Dog d = new Dog();  
              d.eat(); // Animal class method  
              d.bark(); // Dog class method  
              Cat c = new Cat();  
              c.eat(); // Animal class method  
              c.meow(); // Cat class method  
          }  
      }
      
    • বিবরণ: এখানে Dog এবং Cat দুটি আলাদা ক্লাস Animal ক্লাস থেকে বৈশিষ্ট্য এবং আচরণ উত্তরাধিকার পেয়েছে, যা হায়ারারকিকাল ইনহেরিটেন্সের একটি উদাহরণ।
  5. Hybrid Inheritance (হাইব্রিড উত্তরাধিকার):
    • ধারণা: Hybrid Inheritance হল একটি পরিস্থিতি যেখানে একাধিক উত্তরাধিকার শৈলী একত্রিত হয়, যেমন একাধিক ক্লাস থেকে উত্তরাধিকার পাওয়া এবং ইন্টারফেস ব্যবহার করা। Java তে এই ধরনের উত্তরাধিকার সাধারণত ইন্টারফেস এবং ক্লাসের মিশ্রণ ব্যবহার করে অর্জিত হয়।
    • উদাহরণ (Interface + Class):

      interface Animal {  
          void eat();  
      }  
      interface Sound {  
          void makeSound();  
      }  
      class Dog implements Animal, Sound {  
          public void eat() {  
              System.out.println("Dog eats food.");  
          }  
          public void makeSound() {  
              System.out.println("Dog barks.");  
          }  
      }  
      class Puppy extends Dog {  
          void play() {  
              System.out.println("Puppy plays.");  
          }  
      }  
      public class Test {  
          public static void main(String args[]) {  
              Puppy p = new Puppy();  
              p.eat();       // Animal interface method  
              p.makeSound(); // Sound interface method  
              p.play();      // Puppy class method  
          }  
      }
      
    • বিবরণ: এখানে Puppy ক্লাসটি Dog ক্লাস থেকে উত্তরাধিকার পেয়েছে, এবং Dog ক্লাসটি দুটি ইন্টারফেস (Animal এবং Sound) ইমপ্লিমেন্ট করেছে, যা Hybrid Inheritance এর একটি উদাহরণ।

Java তে Inheritance প্রক্রিয়া কোডের পুনঃব্যবহারযোগ্যতা, কাঠামোগত প্রোগ্রামিং এবং জটিলতা কমানোর জন্য অত্যন্ত গুরুত্বপূর্ণ। Single Inheritance একক ক্লাস থেকে উত্তরাধিকার গ্রহণ করে, Multiple Inheritance ইন্টারফেসের মাধ্যমে সম্ভব হয়, Multilevel Inheritance ধাপে ধাপে উত্তরাধিকার প্রদানের একটি প্রক্রিয়া, Hierarchical Inheritance একাধিক ক্লাসের জন্য এক সুপারক্লাস ব্যবহার করা হয়, এবং Hybrid Inheritance একাধিক উত্তরাধিকার শৈলী একত্রিত করে। এগুলি OOP এর শক্তিশালী বৈশিষ্ট্যগুলির মধ্যে একটি।

Content added By
Promotion

Are you sure to start over?

Loading...