บทความนี้วิเคราะห์ความแตกต่างระหว่างอินเทอร์เฟซและคลาสนามธรรมในการเรียนรู้ Java ซึ่งเป็นสิ่งสำคัญสำหรับผู้เริ่มต้นในการเรียนรู้เชิงลึกและเข้าใจแนวคิดของการเขียนโปรแกรม Java อย่างถูกต้อง รายละเอียดมีดังนี้:
ผู้เริ่มต้น Java มักจะถามคำถามเช่น: อะไรคือความแตกต่างระหว่างอินเทอร์เฟซและคลาสนามธรรม? คุณเลือกใช้อินเทอร์เฟซและคลาสนามธรรมบนพื้นฐานใด
แนวคิดของอินเทอร์เฟซและคลาสนามธรรมนั้นแตกต่างกัน อินเทอร์เฟซคือนามธรรมของการกระทำ และคลาสนามธรรมคือนามธรรมของแหล่งที่มา
คลาสนามธรรมแสดงถึงสิ่งที่วัตถุนี้คืออะไร อินเทอร์เฟซแสดงถึงสิ่งที่วัตถุนี้สามารถทำได้ ตัวอย่างเช่น ชายและหญิง ทั้งสองคลาสนี้ (หากเป็นคลาส...) คลาสเชิงนามธรรมคือบุคคล อธิบายว่าพวกเขาล้วนเป็นมนุษย์
ผู้คนสามารถกินได้ และสุนัขก็สามารถกินได้ คุณสามารถกำหนดให้ "การกิน" เป็นอินเทอร์เฟซ แล้วปล่อยให้คลาสเหล่านี้นำไปใช้
ดังนั้นในภาษาระดับสูง คลาสสามารถสืบทอดได้เพียงคลาสเดียวเท่านั้น (คลาสนามธรรม) (เช่นเดียวกับที่บุคคลไม่สามารถเป็นสิ่งมีชีวิตและสิ่งไม่มีชีวิตในเวลาเดียวกัน) แต่ก็สามารถใช้หลายอินเทอร์เฟซได้ (กินอินเทอร์เฟซ , ส่วนต่อประสานการเดิน)
จุดแรก. อินเทอร์เฟซเป็นตัวแปรของคลาสนามธรรม และวิธีการทั้งหมดในอินเทอร์เฟซนั้นเป็นนามธรรม คลาสนามธรรมคือคลาสที่ประกาศการมีอยู่ของวิธีการโดยไม่ต้องนำไปใช้
ประเด็นที่สอง อินเทอร์เฟซสามารถสืบทอดได้ แต่คลาสนามธรรมไม่สามารถสืบทอดได้ (หมายเหตุ: ผู้เขียนต้นฉบับทำผิดพลาดที่นี่ คลาสนามธรรมสามารถสืบทอดได้ หากคลาสย่อยทั้งหมดใช้วิธีการในคลาสนามธรรม คลาสย่อยจะไม่ใช่คลาสนามธรรม มิฉะนั้น หนึ่งในนั้น ยังไม่ได้นำไปใช้ จากนั้นคลาสย่อยก็เป็นคลาสนามธรรมด้วย)
ประเด็นที่สาม ไม่สามารถใช้วิธีการกำหนดอินเทอร์เฟซได้ ในขณะที่คลาสนามธรรมสามารถใช้วิธีบางอย่างได้
จุดที่สี่. ประเภทข้อมูลพื้นฐานในอินเทอร์เฟซเป็นแบบคงที่ แต่รูปภาพนามธรรมไม่ใช่
เมื่อคุณมุ่งเน้นไปที่แก่นแท้ของสิ่งใดสิ่งหนึ่ง ให้ใช้คลาสนามธรรม เมื่อคุณมุ่งเน้นไปที่การดำเนินการ ให้ใช้อินเทอร์เฟซ
ฟังก์ชันการทำงานของคลาสนามธรรมนั้นเกินกว่าอินเทอร์เฟซมาก แต่ค่าใช้จ่ายในการกำหนดคลาสนามธรรมนั้นสูง เพราะในภาษาระดับสูง (และในแง่ของการออกแบบจริง) แต่ละคลาสสามารถสืบทอดได้เพียงคลาสเดียวเท่านั้น ในคลาสนี้ คุณต้องสืบทอดหรือเขียนคุณลักษณะทั่วไปทั้งหมดของคลาสย่อยทั้งหมด แม้ว่าอินเทอร์เฟซจะมีฟังก์ชั่นที่อ่อนแอกว่ามาก แต่ก็เป็นเพียงคำอธิบายของการกระทำเท่านั้น และคุณสามารถใช้หลายอินเทอร์เฟซในคลาสเดียวในเวลาเดียวกันได้ ความยากจะลดลงในระหว่างขั้นตอนการออกแบบ