এক ইন্টারফেস ডিফল্ট মেথড সাপোর্ট করে জাভা ৮ ভার্সন থেকে। কখনও কখনও এই ডিফল্ট মেথডগুলোতে এমন কোড থাকে যা একাধিক মেথডে কমন। সেসব পরিস্থিতিতে, আমরা আরেকটি ডিফল্ট মেথড লিখতে পারি এবং কোড রিযূজেবিলিটি অর্জন করতে পারি। কিন্তু যখন কমন কোড গোপনীয় হয়, তবে সেগুলো ডিফল্ট মেথডে রাখা উচিত নয় কারণ সেই ইন্টারফেস ইমপ্লিমেন্ট করা সব ক্লাস সকল ডিফল্ট মেথড অ্যাক্সেস করতে পারে।
এক ইন্টারফেসে প্রাইভেট মেথড থাকতে পারে জাভা ৯ ভার্সন থেকে। এই মেথডগুলো শুধু ক্লাস/ইন্টারফেস-এর ভিতরেই ভিজিবল, তাই গোপনীয় কোডের জন্য প্রাইভেট মেথড ব্যবহার করা রিকমেন্ডেড। এটাই ইন্টারফেসে প্রাইভেট মেথড যোগ করার কারণ।
সিনট্যাক্স
private void methodName() {
// some statements code
}
উদাহরণ
interface Operation {
default void addition() {
System.out.println("default method addition");
}
default void multiply() {
division();
System.out.println("default method multiply");
}
private void division() {
// private method
System.out.println("private method division");
}
}
class PrivateMethodTest implements Operation {
public static void main(String args[]) {
PrivateMethodTest test = new PrivateMethodTest();
test.multiply();
}
}
আউটপুট
private method division default method multiply