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

জাভাতে ইনহেরিট্যান্স (IS-A) বনাম কম্পোজিশন (HAS-A) রিলেশনশিপ

IS-A রিলেশনশিপ

IS-A বলতে বোঝায় - এই অবজেক্টটি ওই অবজেক্টের একটি টাইপ। নিচে দেখানো হলো extends কীওয়ার্ড কীভাবে ইনহেরিট্যান্স অর্জন করে।

public class Animal { }
public class Mammal extends Animal { }
public class Reptile extends Animal { }
public class Dog extends Mammal { }

এখন, যদি আমরা IS-A রিলেশনশিপ বিবেচনা করি, তবে আমরা বলতে পারি:

  • Mammal IS-A Animal
  • Reptile IS-A Animal
  • Dog IS-A Mammal
  • অতএব: Dog IS-A Animal ও

extends কীওয়ার্ডের ব্যবহার سے সাবক্লাসগুলো সুপারক্লাসের সব প্রোপার্টি ইনহেরিট করতে পারবে (প্রাইভেট প্রোপার্টি বাদে)।

আমরা instanceof অপারেটর ব্যবহার করে নিশ্চিত করতে পারি যে Mammal আসলে একটি Animal।

উদাহরণ

class Animal { }
class Mammal extends Animal { }
class Reptile extends Animal { }
public class Dog extends Mammal {
    public static void main(String args[]) {
        Animal a = new Animal();
        Mammal m = new Mammal();
        Dog d = new Dog();
        System.out.println(m instanceof Animal);
        System.out.println(d instanceof Mammal);
        System.out.println(d instanceof Animal);
    }
}

এটি নিচের ফলাফল দেবে:

আউটপুট

true
true
true

HAS-A রিলেশনশিপ

এই রিলেশনশিপগুলো মূলত ব্যবহারের ওপর ভিত্তি করে। এটি নির্ধারণ করে যে একটি নির্দিষ্ট ক্লাস HAS-A নির্দিষ্ট জিনিস। এই রিলেশনশিপ কোড ডুপ্লিকেশন এবং বাগ কমাতে সাহায্য করে।

একটি উদাহরণ দেখি:

উদাহরণ

public class Vehicle { }
public class Speed { }
public class Van extends Vehicle {
    private Speed sp;
}

এটি দেখাচ্ছে যে Van ক্লাস HAS-A Speed। Speed জন্য আলাদা ক্লাস রাখায় আমাদের Van ক্লাসের ভিতরে স্পীড সংক্রান্ত সারা কোড রাখতে হয় না, যা Speed ক্লাসকে একাধিক অ্যাপ্লিকেশনে রি-ইউজ করতে সম্ভব করে তোলে।

অবজেক্ট-অরিয়েন্টেড ফিচারে, ইউজারদের চিন্তা করতে হয় না কোন অবজেক্ট আসলে কাজটি করছে। এটি অর্জন করতে, Van ক্লাস ইমপ্লিমেন্টেশন ডিটেইল ইউজারদের থেকে লুকিয়ে রাখে। সুতরাং, মূলত কী হয়: ইউজাররা Van ক্লাসকে একটি নির্দিষ্ট অ্যাকশন করতে বলবে এবং Van ক্লাস বা তো নিজে কাজটি করবে বা অন্য একটি ক্লাসকে কাজটি করার জন্য বলবে।

  1. জাভাতে মাল্টিপল ইনহেরিট্যান্স সাপোর্ট করা হয় না কেন

  2. জাভাতে মাল্টিলেভেল ইনহেরিট্যান্স

  3. জাভাতে সিঙ্গেল লেভেল ইনহেরিট্যান্স

  4. জাভাতে ইনহেরিট্যান্সের প্রকারভেদ