ওভাররাইড পদ্ধতিতে কল করার জন্য আমি কোন ভাষা জানি না for প্রকৃতপক্ষে, কিছু ভাষা ওভাররাইডিং পদ্ধতিগুলিকে মঞ্জুরি দেয় যা ওভাররাইডযোগ্য নয় (যেমন newসি # তে কীওয়ার্ড ব্যবহার করে )। তবে এটি কাছে যাওয়ার দুটি উপায় রয়েছে।
প্রথমটি হ'ল একটি অলঙ্ঘনযোগ্য পদ্ধতি তৈরি করা (যেমন virtualসি # তে কীওয়ার্ডের অভাব রয়েছে এমন একটি বা finalজাভাতে কীওয়ার্ড রয়েছে এমন একটি) যা একটি ওভারাইডেবলকে কল করে যা শ্রেণীর বাইরে থেকে কল করা যায় না (যেমন protectedসি #, জাভা বা সি ++ তে)।
class C
A
statement1
F
statement3
protected virtual F
statement2
এবং
class D inherits C
protected override F
statement4
C.F()
ওভাররাইডিং ক্লাসগুলি ওভাররাইড এবং এর আচরণটি পরিবর্তন Cকরতে বিনামূল্যে Fতবে শ্রেণীর বাইরের কলাররা কেবল এটির মাধ্যমে অ্যাক্সেস করে A।
সম্পাদনা: অন্যরা যেমন উল্লেখ করেছে, একে টেম্পলেট পদ্ধতি প্যাটার্ন বলা হয় ।
দ্বিতীয় উপায়টি হ'ল এমন একটি ভাষা ব্যবহার করুন যা বেস ক্লাসে নির্দিষ্ট পূর্ব শর্তাদি এবং পোস্টকন্ডিশনগুলি প্রয়োগ করে, কোড চুক্তি সহ আইফেল বা সি # এর মতো। এটি বেস শ্রেণিকে কল করতে বাধ্য করবে না তবে ওভাররাইড পদ্ধতিতে একই বক্তব্য সম্পাদন করতে বাধ্য করা যেতে পারে। ভাষা দিকগুলি উত্তরাধিকারসূত্রে প্রাপ্ত হতে দেয় যদি দিকগুলি ব্যবহার করাও সহায়তা করতে পারে।