জাভা 8 দিয়ে শুরু defaultকরে ইন্টারফেসে পদ্ধতিগুলি চালু করা হয়েছিল। কার্যকরীভাবে, এর মানে নয় সমস্ত পদ্ধতি interfaceআছে abstract।
জাভা 9 (সম্ভবত) দিয়ে শুরু করে, privateপদ্ধতির অনুমতি দেওয়া হবে। এই উপায়ে নয় সমস্ত পদ্ধতি interfaceআছে public abstract।
প্রশ্ন "জাভা ইন্টারফেসে পদ্ধতিগুলি publicঅ্যাক্সেস মডিফায়ারের সাথে বা ছাড়াই ঘোষণা করা উচিত ?" স্ট্যাক ওভারফ্লোতে /programming/161633/should-methods-in-a-java-interface-be-declared-with-or-without-a-public-access-m এ জিজ্ঞাসা করা হয়েছিল
সেখানে, বেশিরভাগ উত্তর যুক্তি দিয়েছিল যে public abstractব্যবহার করা উচিত নয় কারণ একটি পদ্ধতিতে কোনও পদ্ধতি interfaceছাড়া আর কিছু হতে পারে না public abstract। এখন আর তা হয় না।
সুতরাং, ইন্টারফেসগুলির এই নতুন বৈশিষ্ট্যগুলির আলোকে, public abstractজাভা ইন্টারফেস পদ্ধতি ঘোষণায় কীওয়ার্ডগুলি ব্যবহার করা উচিত ?
আমার নির্দিষ্ট পরিবেশে, আমাদের এমন লোকেরা থাকবে যারা অভিজ্ঞ সফটওয়্যার ইঞ্জিনিয়ার, তবে জাভাতে অভিজ্ঞ নন, সময়ে সময়ে জাভা কোডটি পড়েন। আমি অনুভব করি যে public abstractকীওয়ার্ডগুলি রেখে যাওয়া এখন কীওয়ার্ডগুলি ব্যবহারের জন্য ইন্টারফেসের বিভিন্ন নিয়ম রয়েছে সে সম্পর্কে ইতিহাসের সাথে পরিচিত না হয়ে তাদের জন্য বিভ্রান্তির একটি অতিরিক্ত বিন্দু তৈরি করবে।
abstractক্রমশ সংশ্লেষিত হয়ে উঠছে। জাভা 9-তে, একই বাক্যটি হতে পারে, "একটি ইন্টারফেস পদ্ধতিতে কোনও defaultসংশোধক বা একটি staticসংশোধক বা একটি privateসংশোধক নেই যা স্পষ্টভাবে বিমূর্ত হয় ..." অতিরিক্তভাবে, কীওয়ার্ডগুলি স্পষ্টভাবে ব্যবহার না করার জন্য সহায়ক তর্কগুলি যথা, সমস্ত ইন্টারফেস পদ্ধতি হ'ল public abstract, এখন মোট।
streamকরার বিষয়টি বিবেচনা করুন । বিকল্পটি হ'ল একটি নতুন সাব-ইন্টারফেস তৈরি করা এবং গ্রাফিক্স 2 ডি এর মতো সবাইকে হতাশায় নিয়ে আসা, এবং কেউ তা উপভোগ করেনি! java.util.CollectionMap.getOrDefault()
defaultসংশোধনকারী বা সংশোধক না থাকা একটি ইন্টারফেস পদ্ধতিটিstaticস্পষ্টতই অনুমোদিতabstract... তবে অনুমোদিত শৈলীর বিষয় হিসাবে নিরুৎসাহিত করা, এabstractজাতীয় পদ্ধতিতে ঘোষণার জন্য রিডউন্ডলি মডিফায়ার নির্দিষ্ট করতে "। কেন আপনি আশা করেন যে জিনিসগুলি পরিবর্তিত হওয়া উচিত?