(কোডিং জে এস)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)

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

Previousঅবস্ট্রাকশন(Abstraction)Nextকলব্যাক ফাংশন (callback function)

Last updated 1 year ago

পলিমরফিজম (Polymorphism) বা বহুরূপতা একটি গ্রিক্ শব্দ যার অর্থ একাধিক আকার গ্রহণ করার ক্ষমতা। ধরে নিন আপনার নাম জিরো আলম।এখন আপনার পরিচয় আপনার বন্ধুদের কাছে বন্ধু , আপনার বাবার কাছে ছেলে আবার আপনার প্রিয়তমার কাছে বাবু/ প্রিয়তম/ জানপাখি , আমার সন্তানের কাছে পিতা এবং অফিসে কর্মচারী এই যে আপনি একটা মানুষ এত্ত রূপে রূপায়িত এই বিষয়টায় পলিমরফিজম। ১৯৮৫ সালে স্যার পিটার ওয়েগনার এবং লুকা কার্ডেলি(Peter Wegner and Luca Cardelli) নামের একজন ইতালিয়ান কম্পিউটার প্রকৌশনলী যিনি মূলত অবজেক্ট থিওরী এর জন্য জনপ্রিয় পলিমরফিজম নামক কন্সেপ্টটা যুক্ত করেন সিমুলা (Simula) প্রোগ্রামিং ল্যাগুয়েজের সাথে ।

source:

নিচে একটা উদাহরন দিয়ে বুঝানোর চেষ্টা করলাম।

// Parent constructor function
function Animal(name) {
  this.name = name;
}

// Child constructor functions
function Dog(name) {
  Animal.call(this, name);
}

function Cat(name) {
  Animal.call(this, name);
}

// Shared method through prototype
Animal.prototype.speak = function() {
  console.log(`${this.name} makes a sound.`);
};

const dog = new Dog("Buddy");
const cat = new Cat("Whiskers");

dog.speak(); // Output: Buddy makes a sound.
cat.speak(); // Output: Whiskers makes a sound.

কোনটা object আর কোনটা instance যাতে গুলিয়ে না জান একটা স্কিন শর্ট দিয়ে দিলাম কারন আমি এইটা এই এখানে খুব উচ্ছারণ করব।

কোডটা লক্ষ্য করলে দেখবেন আমি এইখানে Animal নামে একটা কন্সট্রাক্টর ফাংশন বানিয়ে নিয়েছি পরে একটা Dog নামে ফাংশন কন্সট্রাক্টর বানিয়ে তাতে Animal ফাংশন টা কে কল করে নিয়েছি যাতে করে Animal ফাংশন টা Dog ফাংশনের পরিচয় নেয় সে জন্য তাতে this মানে Dog ফাংশন কে নির্দেশ করে দিয়েছি। একই কাজ টা আমি Cat ফাংশনের ক্ষেত্রে ও করে দিয়েছি। পরে Animal.prototype দিয়ে আমি Animal ফাংশনটার prototype এ speak নামে একটা ফাংশন যুক্ত করে দিয়েছি এবং পরে আমি Dog এবং Cat এর জন্য অবজেক্ট বানিয়ে নিয়েছি এবং সেই অবজেক্ট থেকে স্পিক নামে ফাংশন টা কল করেছি। নিচের মতো করে।

dog.speak(); // Output: Buddy makes a sound.
cat.speak(); // Output: Whiskers makes a sound.

সেইম কোড টা আপনি চাইলে ক্লাস দিয়েও করতে পারেন নিচের মতো করে ।

// Parent class
class Animal {
  constructor(name) {
    this.name = name;
  }

  speak() {
    console.log(`${this.name} makes a sound.`);
  }
}

// Child classes
class Dog extends Animal {
  constructor(name) {
    super(name);
  }
}

class Cat extends Animal {
  constructor(name) {
    super(name);
  }
}

const dog = new Dog("Buddy");
const cat = new Cat("Whiskers");

dog.speak(); // Output: Buddy makes a sound.
cat.speak(); // Output: Whiskers makes a sound.
https://en.wikipedia.org/wiki/Polymorphism_(computer_science)