- C++: ক্লাস মেম্বার মেথড ডিফল্টলি নন-ভার্চুয়াল। ভার্চুয়াল করতে
virtualকীওয়ার্ড লাগে। - Java: সব নন-স্ট্যাটিক, নন-প্রাইভেট, নন-ফাইনাল মেথড ডিফল্টলি ভার্চুয়াল (ওভাররাইডযোগ্য)। নন-ভার্চুয়াল করতে
finalকীওয়ার্ড লাগে।
জাভা উদাহরণ (ডিফল্ট ভার্চুয়াল)
class Base {
public void display() { System.out.println("Base display"); }
}
class Derived extends Base {
@Override
public void display() { System.out.println("Derived display"); }
}
public class Main {
public static void main(String[] args) {
Base obj = new Derived(); // আপকাস্টিং
obj.display(); // রান-টাইমে Derived-র display() কল হবে (ভার্চুয়াল বিহেভিয়ার)
}
}
আউটপুট
Derived display
C++-তে virtual না থাকলে Base::display() কল হতো (স্ট্যাটিক বাইন্ডিং)। জাভায় ডাইনামিক বাইন্ডিং ডিফল্ট।