জাভা 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.Collection
Map.getOrDefault()
default
সংশোধনকারী বা সংশোধক না থাকা একটি ইন্টারফেস পদ্ধতিটিstatic
স্পষ্টতই অনুমোদিতabstract
... তবে অনুমোদিত শৈলীর বিষয় হিসাবে নিরুৎসাহিত করা, এabstract
জাতীয় পদ্ধতিতে ঘোষণার জন্য রিডউন্ডলি মডিফায়ার নির্দিষ্ট করতে "। কেন আপনি আশা করেন যে জিনিসগুলি পরিবর্তিত হওয়া উচিত?