Polymorphism


পলিমরফিজম হচ্ছে একটা ইন্টারফে এর বিপরীতে  অনেক রকম ইমপ্লিমেন্টেশন থাকা।  জাভাতে দুই ভাবে এটা করা যায় 

১।  Compile-time (Overloading) - মেথডের নাম একই থাকবে কিন্তু প্যারামিটার ভিন্ন হবে 

২। Runtime (Overriding) - সাবক্লাসের মাধ্যমে মেথডের নতুন ইমপ্লিমেন্টেশন তৈরী করা 


Example (Overloading)

class MathUtils { int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } }


Example (Overriding)

class Animal { void sound() { System.out.println("Animal makes a sound."); } } class Dog extends Animal { @Override void sound() { System.out.println("Dog barks."); } }