คลาส
คลาสคือพิมพ์เขียวที่สร้างแต่ละออบเจ็กต์ คลาสสามารถมีตัวแปรประเภทใดก็ได้ต่อไปนี้
-
ตัวแปรท้องถิ่น − ตัวแปรที่กำหนดไว้ภายในเมธอด ตัวสร้าง หรือบล็อก เรียกว่าตัวแปรท้องถิ่น ตัวแปรจะถูกประกาศและเริ่มต้นภายในเมธอด และตัวแปรจะถูกทำลายเมื่อเมธอดเสร็จสิ้น
-
ตัวแปรอินสแตนซ์ − ตัวแปรอินสแตนซ์เป็นตัวแปรภายในคลาส แต่อยู่นอกเมธอดใดๆ ตัวแปรเหล่านี้จะเริ่มต้นเมื่อมีการสร้างอินสแตนซ์ของคลาส ตัวแปรอินสแตนซ์สามารถเข้าถึงได้จากภายในวิธีการใด ๆ ตัวสร้างหรือบล็อกของคลาสนั้น ๆ
-
ตัวแปรคลาส − ตัวแปรคลาสคือตัวแปรที่ประกาศภายในคลาส นอกเมธอดใดๆ ด้วยคีย์เวิร์ดคงที่
อินเทอร์เฟซ
อินเทอร์เฟซเป็นประเภทอ้างอิงใน Java มันคล้ายกับชั้นเรียน เป็นการรวบรวมวิธีการเชิงนามธรรม คลาสใช้อินเตอร์เฟส ดังนั้นจึงสืบทอดเมธอดนามธรรมของอินเตอร์เฟส
นอกเหนือจากเมธอดนามธรรมแล้ว อินเตอร์เฟสอาจประกอบด้วยค่าคงที่ เมธอดดีฟอลต์ เมธอดสแตติก และประเภทที่ซ้อนกัน เนื้อหาของเมธอดมีอยู่สำหรับเมธอดเริ่มต้นและเมธอดแบบคงที่เท่านั้น
การเขียนอินเทอร์เฟซคล้ายกับการเขียนคลาส แต่คลาสอธิบายคุณลักษณะและพฤติกรรมของวัตถุ และอินเทอร์เฟซมีพฤติกรรมที่คลาสนำไปใช้
ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่างคลาสและอินเทอร์เฟซ
ซีเนียร์ เลขที่ | Key | คลาส | อินเทอร์เฟซ |
---|---|---|---|
1 | วิธีการที่รองรับ | คลาสสามารถมีทั้งแบบนามธรรมและแบบรูปธรรม | อินเทอร์เฟซมีได้เฉพาะเมธอดนามธรรมเท่านั้น Java 8 เป็นต้นไป มันสามารถมีค่าเริ่มต้นเป็นวิธีการแบบคงที่ |
2 | การสืบทอดหลายรายการ | ไม่รองรับการสืบทอดหลายรายการ | อินเทอร์เฟซรองรับการสืบทอดหลายรายการ |
3 | ตัวแปรที่รองรับ | รองรับตัวแปรสุดท้าย ไม่สุดท้าย คงที่และไม่คงที่ | อนุญาตเฉพาะตัวแปรสแตติกและตัวแปรสุดท้ายเท่านั้น |
4 | การนำไปใช้ | คลาสสามารถใช้อินเทอร์เฟซได้ | อินเทอร์เฟซไม่สามารถใช้อินเทอร์เฟซ แต่สามารถขยายอินเทอร์เฟซได้ |
5 | คำหลัก | ประกาศคลาสโดยใช้คีย์เวิร์ดของคลาส | อินเทอร์เฟซถูกประกาศโดยใช้คำสำคัญอินเทอร์เฟซ |
6 | การสืบทอด | คลาสสามารถสืบทอดคลาสอื่นได้โดยใช้ส่วนขยายคำสำคัญและใช้งานอินเทอร์เฟซ | อินเทอร์เฟซสามารถสืบทอดได้เฉพาะอินเทอร์เฟซเท่านั้น |
7 | การสืบทอด | คลาสสามารถสืบทอดได้โดยใช้คีย์เวิร์ด extends | อินเทอร์เฟซสามารถใช้งานได้โดยใช้คีย์เวิร์ด Implement เท่านั้น |
8 | การเข้าถึง | คลาสสามารถมีสมาชิกประเภทใดก็ได้ เช่น ส่วนตัว สาธารณะ | อินเทอร์เฟซมีได้เฉพาะสมาชิกสาธารณะเท่านั้น |
9 | ตัวสร้าง | คลาสสามารถมีเมธอด Constructor ได้ | อินเทอร์เฟซไม่สามารถมีตัวสร้างได้ |
ตัวอย่างคลาสเทียบกับอินเทอร์เฟซ
JavaTester.java
public class JavaTester { public static void main(String args[]) { Animal tiger = new Tiger(); tiger.eat(); Tiger tiger1 = new Tiger(); tiger1.eat(); } } interface Animal { public void eat(); } class Tiger implements Animal { public void eat(){ System.out.println("Tiger eats"); } }
ผลลัพธ์
Tiger eats Tiger eats