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

C#-এ রান টাইম পলিমরফিজম (Run Time Polymorphism) কী?

রান-টাইম পলিমরফিজমে মেথড ওভাররাইডিং (method overriding) থাকে, যাকে ডাইনামিক বাইন্ডিং (dynamic binding) বা লেট বাইন্ডিং (late binding) বলা হয়। এটি abstract classes এবং virtual functions দ্বারা ইমপ্লিমেন্ট করা হয়।

অবস্ট্র্যাক্ট ক্লাস (Abstract Classes)

অবস্ট্র্যাক্ট ক্লাসে অবস্ট্র্যাক্ট মেথড থাকে, যা ডেরাইভড ক্লাস (derived class) দ্বারা ইমপ্লিমেন্ট করা হয়।

উদাহরণ: অবস্ট্র্যাক্ট ক্লাস দিয়ে রান টাইম পলিমরফিজম

using System; 
namespace PolymorphismApplication { 
    abstract class Shape { 
        public abstract int area(); 
    } 
    class Rectangle : Shape { 
        private int length; 
        private int width; 
        public Rectangle(int a = 0, int b = 0) { 
            length = a; 
            width = b; 
        } 
        public override int area() { 
            Console.WriteLine("Rectangle class area :"); 
            return (width * length); 
        } 
    } 
    class RectangleTester { 
        static void Main(string[] args) { 
            Rectangle r = new Rectangle(10, 7); 
            double a = r.area(); 
            Console.WriteLine("Area: {0}", a); 
            Console.ReadKey(); 
        } 
    } 
}

আউটপুট

Rectangle class area : Area: 70

ভার্চুয়াল ফাংশন (Virtual Functions)

যখন আপনার একটি ক্লাসে একটি ফাংশন থাকে যেটি আপনি ইনহেরিটেড ক্লাস(গুলো)-এ ইমপ্লিমেন্ট করতে চান, তবে virtual ফাংশন ব্যবহার করুন। ভার্চুয়াল ফাংশনগুলো ভিন্ন ইনহেরিটেড ক্লাসে ভিন্নভাবে ইমপ্লিমেন্ট করা যেতে পারে এবং এই ফাংশনগুলোর কল রানটাইমে সিদ্ধান্ত নেওয়া হয়।

  1. C#-এ পলিমরফিজম (Polymorphism) কী?

  2. C#-এ ডাইনামিক পলিমরফিজম (Dynamic Polymorphism) কী?

  3. C#-এ অ্যাবস্ট্র্যাক্ট ক্লাস

  4. জাভাতে অ্যাবস্ট্রাক্ট ক্লাস