(কোডিং জে এস)Coding JS
  • কোডিং JS
  • সূচিপত্র(Index)
  • ভূমিকা
  • লেখক পরিচিতি(Writer Intro)
  • ইতিহাস
  • জাভাস্ক্রিপ্টের বিস্তার কত দূর?
  • কাদের জন্য জাভাস্ক্রিপ্ট?
  • এনভায়রনমেন্ট সেটআপ
  • ব্রাউজার পরিচিতি
  • ভাল এডিটর বা আইডিই
  • জাভাস্ক্রিপ্টের ইঞ্জিন (JS Engine)
  • প্রথম প্রোগ্রাম = হ্যালো বাংলাদেশ
  • সিনট্যাক্স নিয়ে যত কথা।
  • ভেরি + এবল = ভেরিয়্যাবল কি?
  • ডেটা টাইপ
    • প্রিমিটিভ ডাটা টাইপ(Primitive data type)
      • বুলিয়ান (Boolean)
      • আন্ডিফাইন্ড (Undefined)
      • নাল (Null)
      • নাম্বার (Number)
      • বিগ ইন্টিজার (BigInt)
      • স্ট্রিং (String)
      • সিম্বল (Symbol)
    • নন-প্রিমিটিভ ডাটা টাইপ(Non-primitive data type)
      • অব্জেক্ট (Object)
      • অ্যারে(Array)
  • অপারেটর
  • কন্ডিশনাল কন্ট্রোল ফ্লো(Conditional Control flow)
  • লুপ এবং ইটারেশন(Loop & Iteration)
    • 🔃ফর লুপ(For loop)
    • 🔃ও্যাইয়ল লুপ (While Loop)
    • 📿পুনারাবৃত্তি (Iteration)
  • ফাংশন (Function)
    • রেগুলার ফাংশন (Regular Function)
    • অ্যারো ফাংশন(Arrow Function)
    • নেস্টেড ফাংশন ( Nested Function)
    • ক্লোজার ফাংশন(Closures Function)
    • আই. আই. এফ. ই. (IIFE)
    • হাইয়ার অর্ডার ফাংশন (Higher Order Function)
    • কারিং ফাংশন (Currying function)
    • এন এফ ই (NFE)
    • রিকার্সিভ ফংশন (Recursive Function)
    • জেনারেটর ফাংশন (Generator Function)
  • ক্লাস ও অবজেক্ট অরিয়েন্টেড (class & OOP)
    • মেম্বার ফাংশন (Member Function)
    • ইনহেরিটেন্স (Inhertance)
    • এনসকেপসুলেশন (Encapsulations)
    • অবস্ট্রাকশন(Abstraction)
    • পলিমরফিজম (Polymorphism)
  • কলব্যাক ফাংশন (callback function)
  • প্রমিস (Promise)
  • Async এবং await (Async & Await)
  • এজ্যাক্স (Ajax)
  • ফেচ (fetch)
  • ওয়েভ এপি আই(Web API)
    • ওয়েব স্টোরেজ (Web Storage)
      • বিস্কিটের টুকরো (Cookies)
      • সেশন (Session)
    • হিস্ট্রি এপি আই (History API)
    • জিওলোকেশন এপি আই (Geolocation API)
    • ওয়ার্কার এপি আই (Workers API)
    • ফর্ম এপি আই (Form API)
  • জে এস ডোম(JS DOM)
  • জে এস স্টাইল (JS Style)
  • এপিআই কী? (What is API)
    • SOAP API
    • রেস্ট এপি আই(REST API)
  • ফ্রেমওয়ার্ক লাইব্রেরী নিয়ে খোশ গল্প
  • জাভাস্ক্রিপ্টের বিল্ডইন কী ওয়ার্ড(Javascript Build in keyword)
  • কৃতজ্ঞতা স্বীকার
Powered by GitBook
On this page
Edit on GitHub
  1. ক্লাস ও অবজেক্ট অরিয়েন্টেড (class & OOP)

ইনহেরিটেন্স (Inhertance)

Previousমেম্বার ফাংশন (Member Function)Nextএনসকেপসুলেশন (Encapsulations)

Last updated 1 year ago

গল্প দিয়ে শুরু করি কিভাবে কি! ১৯৬৬ সালে স্যার চার্লস অ্যান্টনি রিচার্ড হোয়ার Charles Antony Richard Hoare (Tony Hoare or C. A. R. Hoare) নামে এক ব্রিটিস কম্পিউটার প্রকৌশলী রেকর্ডের উপর ভিত্তি করে করে কিছু কন্সেপ্ট কে একত্রীকরণ উপস্থাপন করে আর সে কনসেপ্ট কে ভিত্তি করে ১৯৬৭ সালে ওলে-জোহান ডাহল এবং ক্রিস্টেন নাইগার্ড একটি নকশা উপস্থাপন করেছিলেন যা বিভিন্ন ক্লাসের ভিতরের বিষয় বস্তু গুলোকে একটি সুপার ক্লাসে নিয়ে অন্য আরেকটা ক্লাসে ব্যাবহারের সুবিধা দিবে। এবং পরে তা সিমুলা-৬৭ এর সাথে যুক্ত করে বাজারে ছাড়ে পরে অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ এই বিষয়টাকে তাদের বৈশিষ্ট্য হিসেবে যুক্ত করে নেয়।

source :

ইনহেরিটেন্স এর মানে হচ্ছে উত্তরাধিকার সূত্রে পাওয়া। যদি বলি পুত্র/কন্যা তার বাবা/মায়ের কিছু বৈশিষ্ট্য পেয়ে থাকে যেইটা উত্তরাধিকার সূত্রেই পেয়ে থাকে সেইটাই ইনহেরিটেন্স । আরো যদি সরল ভাবে বলি একটা বস্তু/জিনিস/একটা অবজেক্ট যখন অন্য একটা অবজেক্ট বা অন্য একটা বস্তু বা অন্য একটা জিনিস থেকে কিছু বৈশিষ্ট্য ধার করে বা নিজের মধ্যে নিয়ে নেয় সেইটায় ইনহেরিটেন্স।

ইনহেরিটেন্স কত প্রকার ও কী কী?

১। সিঙ্গেল ইনহেরিটেন্স

এখানে আপনি গাড়িকে চিন্তা করতে পারেন যেখানে আসলে একটা গাড়ি অনেক টাইপের বা অনেক ধরনের হতে পারে কিন্তু তাদের বৈশিষ্ট্য গুলো কিন্তু সেইম অনেক ক্ষেত্রে সে কমন বৈশিষ্ট্য গুলোর উপর ভিত্তি করে আপনি জানাতে আপনি Vehicle নামে একটা ক্লাস বানালেন যেখানে আপনি আসলে কিছু কমন মেথড রাখবেন যেমন গাড়ির মডেল , কালার, গাড়ির চাকা ইত্যাদি ইত্যাদি। পরে আপনি সেই ক্লাস টা কে Car, Bike, Truck ধরনের ক্লাসের জন্য ব্যবহার করতে পারেন।

২। মাল্টিপল ইনহেরিটেন্স

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

৩। মাল্টি লেবেল ইনহেরিটেন্স

আপনি যখন কোন কিছু ক্লাসিফিকেশন করতে চাইছেন তখন কিন্তু এমন ইনহেরিটেন্স প্রয়োজন পরে। যেমন ধরুন আপনি প্রানীর শ্রেণী বিভেদ করতে চাইছেন।

১। যারা উড়তে পারে

২। যাদের পা আছে

৩। যাদের পা নেই

৪। স্তন্য পায়ী কিনা

অথাবা আরো সুন্দর করে বলা যায় আপনি আপনার বাবা এবং দাদার কিছু গুণ পেয়েছেন হয়ত চোখ আপনার বাবার মতো চেহেরা আপনার দাদার মতো ।

নিচে একটা উদাহরন দিয়ে দেখানো হলো।

class Country {
  constructor(name) {
    this.countryName = name;
  }
  getCountryName() {
    return 'Country Name: ' + this.countryName;
  }
}

class Division extends Country {
  constructor(country,division) {
    super(country);
    this.division = division;
  }
  show() {
    return 'Country: ' + this.getCountryName() + "division: " + this.division;
  }
}

let myDivision = new Division("Bangladesh", "Chittagong");
console.log(myDivision.show());

উপরের উদাহরণ টা যদি লক্ষ্য করেন তাহলে দেখতেই পাচ্ছেন Country,Division নামে দুইটি ক্লাস লিখেছি এবং একটা আরেকটা কে extends keyword দিয়ে Division ক্লাসে আমি Country ক্লাসটিকে ইনহেরিট করেছি এবং তারপরে কন্সট্রাটর ক্লাসে super ফাংশন্টাকে কল করেছি এবং Country ক্লাসের কন্সটাক্টর ফাংশন এর দিকে লক্ষ্য করলে দেখবেন সেখানে একটা প্যারামিটার নিচ্ছে আর সেইটা getCountryName নামের ফাংশন টি দিয়ে দেখানো হচ্ছে তাই আমি যখন super ফাংশন টা কে কল করছি তখন এর মাঝে country প্যারামিটার টা পাঠিয়ে দিচ্ছি।

ছবি রেফারেন্সঃ

https://seleniumautomationtester.wordpress.com/2017/03/09/inheritance-in-java/
https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)
ইনহেরিটেন্স
image source:
image source:
image sourcce :
https://upload.wikimedia.org/wikipedia/en/thumb/3/32/Single_Inheritance.jpg/170px-Single_Inheritance.jpg
https://upload.wikimedia.org/wikipedia/en/thumb/6/69/Multiple_Inheritance.jpg/170px-Multiple_Inheritance.jpg
https://upload.wikimedia.org/wikipedia/en/thumb/0/0e/Multilevel_Inheritance.jpg/170px-Multilevel_Inheritance.jpg