ตาม Javadocs ของ Oracle -
วิธีการเริ่มต้นช่วยให้คุณสามารถเพิ่มฟังก์ชันการทำงานใหม่ให้กับอินเทอร์เฟซของไลบรารีของคุณ และตรวจสอบความเข้ากันได้ของไบนารีกับโค้ดที่เขียนขึ้นสำหรับอินเทอร์เฟซเหล่านั้นในเวอร์ชันเก่า
วิธีสแตติกคือวิธีการที่เกี่ยวข้องกับคลาสที่มีการกำหนดไว้มากกว่ากับอ็อบเจกต์ใดๆ ทุกอินสแตนซ์ของคลาสใช้เมธอดแบบคงที่
เมธอดแบบคงที่ในอินเทอร์เฟซเป็นส่วนหนึ่งของคลาสอินเทอร์เฟซไม่สามารถนำไปใช้หรือแทนที่ได้ในขณะที่คลาสสามารถแทนที่เมธอดเริ่มต้นได้
| ซีเนียร์ เลขที่ | คีย์ | วิธีการอินเตอร์เฟสแบบคงที่ | วิธีการเริ่มต้น |
|---|---|---|---|
| 1 | พื้นฐาน | เป็นวิธีการแบบคงที่ซึ่งเป็นของอินเทอร์เฟซเท่านั้น เราสามารถเขียนการดำเนินการของวิธีนี้ในอินเทอร์เฟซเอง | เป็นเมธอดที่มีคีย์เวิร์ดเริ่มต้น และคลาสสามารถแทนที่เมธอดนี้ได้ |
| 2 | การเรียกใช้เมธอด | เมธอดแบบสแตติกสามารถเรียกใช้ได้เฉพาะในคลาสอินเตอร์เฟสเท่านั้น ไม่ใช่ในคลาส | สามารถเรียกใช้ได้ทั้งบนอินเทอร์เฟซและคลาส |
| 3 | ชื่อวิธีการ | อินเทอร์เฟซและการนำคลาสไปใช้ ทั้งคู่สามารถมีเมธอดแบบสแตติกที่มีชื่อเดียวกันโดยไม่ต้องแทนที่กัน | เราสามารถแทนที่วิธีการเริ่มต้นในการใช้งาน class |
| 4. | ใช้ตัวพิมพ์ | สามารถใช้เป็นยูทิลิตี้ได้ | สามารถใช้เพื่อให้การทำงานทั่วไปในคลาสที่นำไปใช้ทั้งหมด |
ตัวอย่างวิธีการเริ่มต้นและแบบคงที่ในอินเทอร์เฟซ
public interface DefaultStaticExampleInterface {
default void show() {
System.out.println("In Java 8- default method - DefaultStaticExampleInterface");
}
static void display() {
System.out.println("In DefaultStaticExampleInterface I");
}
}
public class DefaultStaticExampleClass implements DefaultStaticExampleInterface {
}
public class Main {
static void main(String args[]) {
// Call interface static method on Interface
DefaultStaticExampleInterface.display();
DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass();
// Call default method on Class
defaultStaticExampleClass.show();
}
}