ความแตกต่างระหว่างคลาสและอินเทอร์เฟซ (พร้อมตาราง)

สารบัญ:

Anonim

ทั้งคลาสและอินเทอร์เฟซกำหนดว่าอ็อบเจกต์หน้าตาเป็นอย่างไรและพฤติกรรมของอ็อบเจกต์ด้วย หากเราศึกษาและเข้าใจโครงสร้างทั้งสองอย่างถี่ถ้วน การจัดการโปรแกรมจะง่ายขึ้น เป็นโครงสร้างพื้นฐานสองประการในภาษาการเขียนโปรแกรมเชิงวัตถุ นอกจากนี้ ความเข้าใจที่ดีขึ้นจะช่วยปรับปรุงคุณภาพการเขียนโค้ดของเราและประสบการณ์ของนักพัฒนาซอฟต์แวร์

คลาส vs อินเตอร์เฟส

ความแตกต่างหลักระหว่าง Class และ Interface คือ คลาสสามารถมีได้ทั้งวิธีนามธรรมและรูปธรรม ในขณะที่อินเทอร์เฟซสามารถมีได้เฉพาะวิธีการที่เป็นนามธรรมเท่านั้น คลาสอาจถึงนามธรรมบางส่วน แต่อินเทอร์เฟซจะบรรลุความเป็นนามธรรมทั้งหมดเสมอ

คลาสเป็นโครงสร้างพื้นฐานในโปรแกรมที่สร้างอ็อบเจ็กต์ คลาสเองเป็นของแพ็คเกจบางตัวที่มีกลุ่มของบันเดิลที่เหมือนกันที่รวมเข้าด้วยกัน การประกาศคลาสโดยทั่วไปประกอบด้วยคำสำคัญ ตัวดัดแปลง และชื่อคลาส คลาสสามารถจำแนกได้อีกเป็นสองประเภท:i Built-in-classesii. คลาสที่กำหนดโดยผู้ใช้

แนวคิดของอินเทอร์เฟซถูกนำมาใช้สำหรับการใช้งานหลายคลาสพร้อมกัน ประกอบด้วยการประกาศวิธีการของโปรแกรม ไม่เพียงแต่วิธีนามธรรมเท่านั้น แต่อินเทอร์เฟซยังสามารถมีวิธีการแบบคงที่ได้อีกด้วย พวกเขาจะประกาศให้เป็นสาธารณะโดยค่าเริ่มต้นเสมอ

ตารางเปรียบเทียบระหว่างคลาสและอินเตอร์เฟส

พารามิเตอร์ของการเปรียบเทียบ

ระดับ

อินเตอร์เฟซ

คำนิยาม คลาสโดยทั่วไปจะอธิบายและกำหนดพฤติกรรมของอ็อบเจกต์ อินเทอร์เฟซโดยทั่วไปประกอบด้วยแอตทริบิวต์และพฤติกรรมที่กำหนดโดยคลาส
คำสำคัญ คีย์เวิร์ด “class” ใช้เพื่อประกาศคลาส คำหลัก "อินเทอร์เฟซ" ใช้เพื่อประกาศอินเทอร์เฟซ
วิธีการ คลาสได้รับอนุญาตให้มีทั้งวิธีนามธรรมและรูปธรรม แปลว่า วิธีการสามารถมีร่างกายได้ อินเทอร์เฟซสามารถมีได้เฉพาะวิธีการที่เป็นนามธรรมเท่านั้น แปลว่า วิธีการไม่มีร่างกาย
ตัวระบุการเข้าถึง สมาชิกในชั้นเรียนอาจเป็นแบบสาธารณะ มีการป้องกัน หรือเป็นค่าเริ่มต้นก็ได้ โดยค่าเริ่มต้น สมาชิกทั้งหมดของอินเทอร์เฟซจะเป็นสาธารณะ
มรดก คลาสไม่รองรับการสืบทอดหลายรายการ ใช้คีย์เวิร์ดขยายเพื่อสืบทอดคลาสอื่น อินเทอร์เฟซรองรับการสืบทอดหลายรายการ อย่างไรก็ตามมันสามารถสืบทอดได้เฉพาะส่วนต่อประสาน

คลาสคืออะไร?

คลาสคือพิมพ์เขียวหรือแผน ซึ่งวัตถุจะถูกสร้างขึ้น เป็นกลุ่มของวัตถุที่มีคุณสมบัติคล้ายคลึงกัน เป็นเอนทิตีเชิงตรรกะและไม่สามารถเป็นจริงได้ ชื่อคลาสตามอัตภาพจะขึ้นต้นด้วยตัวพิมพ์ใหญ่

เป็นแนวคิดพื้นฐานของการเขียนโปรแกรมเชิงวัตถุ กำหนดพฤติกรรมของวัตถุ มันสามารถมีได้หลายวิธีและสามารถเข้าถึงค่าของมันได้

คลาสสามารถประกอบด้วยตัวแปรประเภทต่อไปนี้: ตัวแปรโลคัล ตัวแปรอินสแตนซ์ และตัวแปรคลาส

ไวยากรณ์ของคลาสมีดังนี้:

คลาส {field;method;}

ในการสร้างวัตถุภายใต้คลาส เราจำเป็นต้องใช้คำสำคัญที่เรียกว่า 'ใหม่' ร่วมกับตัวสร้าง คอนสตรัคเตอร์มีชื่อเดียวกับคลาส หน้าที่ของมันคล้ายกับวิธีการ

ตัวอย่างเช่น ถ้าชื่อคลาสคือ Program ตัวสร้างคือ Program() ในการเข้าถึงสมาชิกของคลาส เราจำเป็นต้องใช้ชื่อของอ็อบเจ็กต์พร้อมกับคลาส

อินเทอร์เฟซคืออะไร?

อินเทอร์เฟซถูกกำหนดให้เป็นกลุ่มของวิธีการที่คล้ายกัน แต่มีเนื้อหาว่างเปล่า

เมื่อเราปรับใช้อินเทอร์เฟซ มันทำให้คลาสเหมาะสมยิ่งขึ้น สิ่งนี้ทำให้พฤติกรรมของชั้นเรียนเป็นทางการมากขึ้น เป็นสัญญาที่บังคับใช้โดยคอมไพเลอร์ซึ่งเชื่อมโยงชั้นเรียนกับโลกภายนอก

ก่อนที่คลาสจะคอมไพล์ได้สำเร็จ เมธอดที่กำหนดโดยอินเตอร์เฟสจะต้องปรากฏในซอร์สโค้ด ในการคอมไพล์คลาส เราต้องเพิ่มคีย์เวิร์ดสาธารณะที่จุดเริ่มต้น ไม่สามารถมีตัวแปรและเมธอดส่วนตัวได้

ประกอบด้วยวิธีการเชิงนามธรรมและค่าคงที่คงที่ อินเทอร์เฟซต้องไม่มีเนื้อหาของเมธอดใดๆ โดยทั่วไปจะใช้สำหรับการได้รับมรดกหลายรายการในโปรแกรม

สามารถใช้วิธีการเริ่มต้นและแบบคงที่ได้ในอินเทอร์เฟซ นอกจากนี้ เราสามารถมีวิธีส่วนตัวในอินเทอร์เฟซ ใช้สำหรับบรรลุสิ่งที่เป็นนามธรรม

ความแตกต่างหลักระหว่างคลาสและอินเตอร์เฟส

บทสรุป

ในการจัดเฟรมโปรแกรม คลาสและอินเทอร์เฟซเป็นสององค์ประกอบพื้นฐานที่สุด พวกเขามีหน้าที่แตกต่างกันในการให้บริการ อย่างไรก็ตาม มีความคล้ายคลึงกันค่อนข้างน้อยเมื่อเปรียบเทียบทางวากยสัมพันธ์ คำหลัก "คลาส" ใช้เพื่อสร้างคลาสและคำหลัก "อินเทอร์เฟซ" ใช้เพื่อสร้างอินเทอร์เฟซ เราต้องจำรูปแบบที่เหมาะสมเอาไว้เพื่อที่จะรันโปรแกรมที่จำเป็น

คลาสสามารถมีเนื้อหาเมธอดในขณะที่อินเตอร์เฟสไม่สามารถ เมื่อมาถึงเมธอด คลาสจะมีทั้งเมธอดแบบสแตติกและขั้นสุดท้ายซึ่งสามารถเป็นสาธารณะหรือส่วนตัวได้ ในกรณีของอินเทอร์เฟซ ไม่สามารถมีทั้งสองวิธีซึ่งเป็นแบบสาธารณะเสมอ โดยพื้นฐานแล้วเพื่อให้สามารถเข้าถึงคลาสที่จะดำเนินการได้

จุดสำคัญอีกประการหนึ่งคือการใช้งานคลาสยังต้องตรวจสอบความถูกต้องของวิธีการทั้งหมดที่มีอยู่ในอินเทอร์เฟซ ดังนั้นโดยไม่ต้องสงสัย คลาสและอินเทอร์เฟซขึ้นอยู่กับแต่ละอื่น ๆ เท่านั้น

อ้างอิง

ความแตกต่างระหว่างคลาสและอินเทอร์เฟซ (พร้อมตาราง)