ทั้งคลาสและอินเทอร์เฟซกำหนดว่าอ็อบเจกต์หน้าตาเป็นอย่างไรและพฤติกรรมของอ็อบเจกต์ด้วย หากเราศึกษาและเข้าใจโครงสร้างทั้งสองอย่างถี่ถ้วน การจัดการโปรแกรมจะง่ายขึ้น เป็นโครงสร้างพื้นฐานสองประการในภาษาการเขียนโปรแกรมเชิงวัตถุ นอกจากนี้ ความเข้าใจที่ดีขึ้นจะช่วยปรับปรุงคุณภาพการเขียนโค้ดของเราและประสบการณ์ของนักพัฒนาซอฟต์แวร์
คลาส vs อินเตอร์เฟส
ความแตกต่างหลักระหว่าง Class และ Interface คือ คลาสสามารถมีได้ทั้งวิธีนามธรรมและรูปธรรม ในขณะที่อินเทอร์เฟซสามารถมีได้เฉพาะวิธีการที่เป็นนามธรรมเท่านั้น คลาสอาจถึงนามธรรมบางส่วน แต่อินเทอร์เฟซจะบรรลุความเป็นนามธรรมทั้งหมดเสมอ
คลาสเป็นโครงสร้างพื้นฐานในโปรแกรมที่สร้างอ็อบเจ็กต์ คลาสเองเป็นของแพ็คเกจบางตัวที่มีกลุ่มของบันเดิลที่เหมือนกันที่รวมเข้าด้วยกัน การประกาศคลาสโดยทั่วไปประกอบด้วยคำสำคัญ ตัวดัดแปลง และชื่อคลาส คลาสสามารถจำแนกได้อีกเป็นสองประเภท:i Built-in-classesii. คลาสที่กำหนดโดยผู้ใช้
แนวคิดของอินเทอร์เฟซถูกนำมาใช้สำหรับการใช้งานหลายคลาสพร้อมกัน ประกอบด้วยการประกาศวิธีการของโปรแกรม ไม่เพียงแต่วิธีนามธรรมเท่านั้น แต่อินเทอร์เฟซยังสามารถมีวิธีการแบบคงที่ได้อีกด้วย พวกเขาจะประกาศให้เป็นสาธารณะโดยค่าเริ่มต้นเสมอ
ตารางเปรียบเทียบระหว่างคลาสและอินเตอร์เฟส
พารามิเตอร์ของการเปรียบเทียบ | ระดับ | อินเตอร์เฟซ |
คำนิยาม | คลาสโดยทั่วไปจะอธิบายและกำหนดพฤติกรรมของอ็อบเจกต์ | อินเทอร์เฟซโดยทั่วไปประกอบด้วยแอตทริบิวต์และพฤติกรรมที่กำหนดโดยคลาส |
คำสำคัญ | คีย์เวิร์ด “class” ใช้เพื่อประกาศคลาส | คำหลัก "อินเทอร์เฟซ" ใช้เพื่อประกาศอินเทอร์เฟซ |
วิธีการ | คลาสได้รับอนุญาตให้มีทั้งวิธีนามธรรมและรูปธรรม แปลว่า วิธีการสามารถมีร่างกายได้ | อินเทอร์เฟซสามารถมีได้เฉพาะวิธีการที่เป็นนามธรรมเท่านั้น แปลว่า วิธีการไม่มีร่างกาย |
ตัวระบุการเข้าถึง | สมาชิกในชั้นเรียนอาจเป็นแบบสาธารณะ มีการป้องกัน หรือเป็นค่าเริ่มต้นก็ได้ | โดยค่าเริ่มต้น สมาชิกทั้งหมดของอินเทอร์เฟซจะเป็นสาธารณะ |
มรดก | คลาสไม่รองรับการสืบทอดหลายรายการ ใช้คีย์เวิร์ดขยายเพื่อสืบทอดคลาสอื่น | อินเทอร์เฟซรองรับการสืบทอดหลายรายการ อย่างไรก็ตามมันสามารถสืบทอดได้เฉพาะส่วนต่อประสาน |
คลาสคืออะไร?
คลาสคือพิมพ์เขียวหรือแผน ซึ่งวัตถุจะถูกสร้างขึ้น เป็นกลุ่มของวัตถุที่มีคุณสมบัติคล้ายคลึงกัน เป็นเอนทิตีเชิงตรรกะและไม่สามารถเป็นจริงได้ ชื่อคลาสตามอัตภาพจะขึ้นต้นด้วยตัวพิมพ์ใหญ่
เป็นแนวคิดพื้นฐานของการเขียนโปรแกรมเชิงวัตถุ กำหนดพฤติกรรมของวัตถุ มันสามารถมีได้หลายวิธีและสามารถเข้าถึงค่าของมันได้
คลาสสามารถประกอบด้วยตัวแปรประเภทต่อไปนี้: ตัวแปรโลคัล ตัวแปรอินสแตนซ์ และตัวแปรคลาส
ไวยากรณ์ของคลาสมีดังนี้:
คลาส {field;method;}
ในการสร้างวัตถุภายใต้คลาส เราจำเป็นต้องใช้คำสำคัญที่เรียกว่า 'ใหม่' ร่วมกับตัวสร้าง คอนสตรัคเตอร์มีชื่อเดียวกับคลาส หน้าที่ของมันคล้ายกับวิธีการ
ตัวอย่างเช่น ถ้าชื่อคลาสคือ Program ตัวสร้างคือ Program() ในการเข้าถึงสมาชิกของคลาส เราจำเป็นต้องใช้ชื่อของอ็อบเจ็กต์พร้อมกับคลาส
อินเทอร์เฟซคืออะไร?
อินเทอร์เฟซถูกกำหนดให้เป็นกลุ่มของวิธีการที่คล้ายกัน แต่มีเนื้อหาว่างเปล่า
เมื่อเราปรับใช้อินเทอร์เฟซ มันทำให้คลาสเหมาะสมยิ่งขึ้น สิ่งนี้ทำให้พฤติกรรมของชั้นเรียนเป็นทางการมากขึ้น เป็นสัญญาที่บังคับใช้โดยคอมไพเลอร์ซึ่งเชื่อมโยงชั้นเรียนกับโลกภายนอก
ก่อนที่คลาสจะคอมไพล์ได้สำเร็จ เมธอดที่กำหนดโดยอินเตอร์เฟสจะต้องปรากฏในซอร์สโค้ด ในการคอมไพล์คลาส เราต้องเพิ่มคีย์เวิร์ดสาธารณะที่จุดเริ่มต้น ไม่สามารถมีตัวแปรและเมธอดส่วนตัวได้
ประกอบด้วยวิธีการเชิงนามธรรมและค่าคงที่คงที่ อินเทอร์เฟซต้องไม่มีเนื้อหาของเมธอดใดๆ โดยทั่วไปจะใช้สำหรับการได้รับมรดกหลายรายการในโปรแกรม
สามารถใช้วิธีการเริ่มต้นและแบบคงที่ได้ในอินเทอร์เฟซ นอกจากนี้ เราสามารถมีวิธีส่วนตัวในอินเทอร์เฟซ ใช้สำหรับบรรลุสิ่งที่เป็นนามธรรม
ความแตกต่างหลักระหว่างคลาสและอินเตอร์เฟส
บทสรุป
ในการจัดเฟรมโปรแกรม คลาสและอินเทอร์เฟซเป็นสององค์ประกอบพื้นฐานที่สุด พวกเขามีหน้าที่แตกต่างกันในการให้บริการ อย่างไรก็ตาม มีความคล้ายคลึงกันค่อนข้างน้อยเมื่อเปรียบเทียบทางวากยสัมพันธ์ คำหลัก "คลาส" ใช้เพื่อสร้างคลาสและคำหลัก "อินเทอร์เฟซ" ใช้เพื่อสร้างอินเทอร์เฟซ เราต้องจำรูปแบบที่เหมาะสมเอาไว้เพื่อที่จะรันโปรแกรมที่จำเป็น
คลาสสามารถมีเนื้อหาเมธอดในขณะที่อินเตอร์เฟสไม่สามารถ เมื่อมาถึงเมธอด คลาสจะมีทั้งเมธอดแบบสแตติกและขั้นสุดท้ายซึ่งสามารถเป็นสาธารณะหรือส่วนตัวได้ ในกรณีของอินเทอร์เฟซ ไม่สามารถมีทั้งสองวิธีซึ่งเป็นแบบสาธารณะเสมอ โดยพื้นฐานแล้วเพื่อให้สามารถเข้าถึงคลาสที่จะดำเนินการได้
จุดสำคัญอีกประการหนึ่งคือการใช้งานคลาสยังต้องตรวจสอบความถูกต้องของวิธีการทั้งหมดที่มีอยู่ในอินเทอร์เฟซ ดังนั้นโดยไม่ต้องสงสัย คลาสและอินเทอร์เฟซขึ้นอยู่กับแต่ละอื่น ๆ เท่านั้น