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

C++ এবং জাভায় ডিফল্ট ভার্চুয়াল বিহেভিয়ারের পার্থক্য


  • 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() কল হতো (স্ট্যাটিক বাইন্ডিং)। জাভায় ডাইনামিক বাইন্ডিং ডিফল্ট।

  1. ওননোট ক্লাস নোটবুক কী এবং এটি কীভাবে কাজ করে?

  2. জাভাতে ডিফল্ট মেথড ব্যবহার করে ডায়ামন্ড সমস্যা সমাধান

  3. জাভাতে ডিফল্ট মেথড ব্যবহার করে ডায়ামন্ড সমস্যা সমাধান

  4. জাভাতে ClassLoader কীভাবে কাজ করে