সমস্ত ভাল এবং ভাল যখন আপনার প্রশ্নের মধ্যে থাকা সমস্ত কোডের উপর সম্পূর্ণ নিয়ন্ত্রণ থাকে এবং আপনি এই সম্মুখভাগটি বাস্তবায়ন করতে পারেন। এখন কল্পনা করুন আপনার একটি বিদ্যমান পাবলিক ক্লাস একটি পদ্ধতি সহ অনেক জায়গায় ব্যবহৃত হয়েছে
public class MyClass{
private String name;
MyClass(String name){
this.name = name;
}
public String getName(){
return name;
}
}
এখন আপনাকে এটিকে শেল্ফ উইজব্যাংপ্রসেসরের বাইরে যেতে হবে যেখানে ডাব্লুবিপিআইন্টারফেস বাস্তবায়নের জন্য ক্লাস প্রয়োজন ... যার গেটনেম () পদ্ধতিও রয়েছে, তবে আপনার কংক্রিট বাস্তবায়নের পরিবর্তে এই ইন্টারফেসটি পদ্ধতিটি কোনও ধরণের নাম ফেরতের প্রত্যাশা করে উইজ ব্যাং প্রসেসিং এর।
সি # এ এটি একটি ক্ষুধা হবে
public class MyClass : WBPInterface{
private String name;
String WBPInterface.getName(){
return "MyWizzBangProcessor";
}
MyClass(String name){
this.name = name;
}
public String getName(){
return name;
}
}
জাভা শক্তিতে আপনাকে বিদ্যমান মোতায়েন কোড বেসের প্রতিটি পয়েন্ট চিহ্নিত করতে হবে যেখানে আপনাকে একটি ইন্টারফেস থেকে অন্য ইন্টারফেসে রূপান্তর করতে হবে। নিশ্চিত যে উইজব্যাংপ্রসেসর সংস্থার getWizzBangProcessName () ব্যবহার করা উচিত ছিল, তবে তারাও বিকাশকারী। তাদের প্রসঙ্গে getName ঠিক ছিল। প্রকৃতপক্ষে, জাভার বাইরে অন্যান্য ওও ভিত্তিক ভাষাগুলি এটি সমর্থন করে। জাভা একই পদ্ধতি NAME এর সাথে সমস্ত ইন্টারফেস প্রয়োগ করতে বাধ্য করা বিরল।
বেশিরভাগ অন্যান্য ভাষার একটি সংকলক রয়েছে যা "এই ক্লাসে এই পদ্ধতিটি যা এই প্রয়োগকৃত ইন্টারফেসে এই পদ্ধতির স্বাক্ষরের সাথে মেলে তা হ'ল এটি বাস্তবায়ন" বলার জন্য একটি নির্দেশনা গ্রহণ করার চেয়ে আনন্দিত। ইন্টারফেস সংজ্ঞায়িত করার পুরো পয়েন্টটি হ'ল সংজ্ঞাটি বাস্তবায়ন থেকে বিমূ .় হতে দেওয়া। (জাভাতে ইন্টারফেসে আমাকে ডিফল্ট পদ্ধতিগুলি চালু করতে শুরুও করবেন না, ডিফল্ট ওভাররাইডিংকে একা ছেড়ে দিন .... কারণ নিশ্চিত যে, কোনও রাস্তার গাড়ির জন্য নকশাকৃত প্রতিটি উপাদান একটি উড়ন্ত গাড়িতে চটকাতে এবং কেবল কাজ করতে সক্ষম হওয়া উচিত - আরে তারা উভয়ই গাড়ি ... আমি নিশ্চিত যে ডিফল্ট কার্যকারিতা আপনার স্যাট নেভকে ডিফল্ট পিচ এবং রোল ইনপুটগুলির সাথে প্রভাবিত করবে না, কারণ গাড়ি কেবল ইয়াও!