แนวคิดหลักของคลาสนามธรรมมีอยู่ในวิทยานิพนธ์ต่อไปนี้: บางครั้งอาจไม่จำเป็นต้องเรียนสำเร็จรูป แต่อยู่ในรูปแบบ "ดิบ" ไม่สามารถใช้ค่าที่ตั้งล่วงหน้าดังกล่าวได้โดยตรง (สร้างอินสแตนซ์)
คลาสนามธรรมใน Java คืออะไร
ลองดูตัวอย่างอื่นมีปฏิทินคลาสนามธรรมใน Java ในแพ็คเกจ Java.util ไม่ใช้ปฏิทินเฉพาะที่ใช้เช่นในยุโรปตะวันตกและยุโรปตะวันออกจีนเกาหลีเหนือไทยเป็นต้น แต่มีฟังก์ชันที่มีประโยชน์มากมายตัวอย่างเช่นการเพิ่มหลายวันในวันที่ที่ระบุ: ฟังก์ชันเหล่านี้คือ จำเป็นสำหรับการใช้งานปฏิทิน คุณไม่สามารถสร้างอินสแตนซ์จากคลาสนามธรรมได้
คลาสนามธรรมวิธี Java นามธรรม
สมมติว่าคุณต้องพัฒนากราฟิกหลาย ๆองค์ประกอบตัวอย่างเช่นรูปทรงเรขาคณิต: วงกลมสี่เหลี่ยมผืนผ้าดาว ฯลฯ และยังมีภาชนะที่ดึงมันออกมา แต่ละองค์ประกอบมีลักษณะที่แตกต่างกันดังนั้นวิธีการที่เกี่ยวข้อง (เรียกว่าการระบายสี) จึงถูกนำมาใช้แตกต่างกัน อย่างไรก็ตามแต่ละองค์ประกอบมีหลายสิ่งที่เหมือนกัน: รูปร่างจะต้องถูกจารึกไว้ในสี่เหลี่ยมผืนผ้าสามารถมีสีมองเห็นได้และมองไม่เห็น ฯลฯ นั่นคือคุณต้องสร้างคลาสพาเรนต์สำหรับรูปร่างเหล่านี้ทั้งหมดซึ่งแต่ละองค์ประกอบจะสืบทอดร่วมกัน คุณสมบัติ.
ถ้าชั้นเรียนมีวิธีนามธรรมแล้วชั้นเรียนเป็นนามธรรม บทคัดย่อของคีย์เวิร์ดจะอยู่หน้าคำคลาสและในส่วนหัวของเมธอดด้วย ต้องวางอัฒภาคไว้หลังชื่อของวิธีการดังกล่าว ใน Java คลาสนามธรรมไม่สามารถสร้างอินสแตนซ์ได้ หากเราต้องการห้ามการสร้างของพวกเขาแม้ว่าคลาสนั้นจะไม่มีวิธีการที่เป็นนามธรรมก็ตาม แต่ถ้าชั้นเรียนมีวิธีนามธรรมอย่างน้อยหนึ่งวิธีชั้นเรียนนั้นจะต้องเป็นนามธรรม เป็นไปไม่ได้ที่คลาสจะเป็นนามธรรมสุดท้ายและเป็นวิธีการเช่นกัน วิธีการนี้ไม่สามารถเป็นนามธรรมส่วนตัวคงที่ เพื่อให้คลาสที่สืบทอดมาถูกประกาศว่าไม่ใช่นามธรรมและเป็นอินสแตนซ์พวกเขาต้องใช้วิธีนามธรรมทั้งหมดของพาเรนต์ ชั้นเรียนเองสามารถใช้วิธีนามธรรมได้
ตัวอย่าง:
- AClass คลาสนามธรรม {
- วิธีโมฆะนามธรรมสาธารณะ (int a);
- }
- คลาส BClass ขยาย AClass {
- วิธีโมฆะสาธารณะ (int a) {
- // ร่างกาย
- }
อนุญาตให้ใช้ตัวแปรประเภทนามธรรมคลาสได้ พวกเขาสามารถอ้างถึงผู้สืบทอดที่ไม่ใช่นามธรรมของคลาสนี้หรือเป็นโมฆะ
อินเทอร์เฟซ Java - ทางเลือกสำหรับการสืบทอดหลายรายการ
ไม่มีการสืบทอดหลายรายการใน Java เนื่องจากปัญหาบางอย่างเกิดขึ้น คลาสไม่สามารถสืบทอดจากหลายคลาสได้ แต่สามารถใช้งานได้หลายอินเทอร์เฟซ
อินเทอร์เฟซ Java และคลาสนามธรรม - แนวคิดคล้ายกัน แต่ไม่เหมือนกัน อินเทอร์เฟซสามารถประกาศเป็นสาธารณะจากนั้นทุกคนสามารถใช้งานได้หรือคุณสามารถละเว้นตัวปรับแต่งสาธารณะจากนั้นอินเทอร์เฟซจะพร้อมใช้งานภายในแพ็คเกจเท่านั้น ไม่จำเป็นต้องใช้คีย์เวิร์ดที่เป็นนามธรรมเนื่องจากอินเทอร์เฟซเป็นนามธรรมอยู่แล้ว แต่คุณสามารถระบุได้
การประกาศอินเทอร์เฟซ
เริ่มต้นด้วยชื่อและอาจไปก่อนคีย์เวิร์ดสาธารณะตามด้วยคำอินเทอร์เฟซ จากนั้นคำจะขยายและการแจงนับของอินเทอร์เฟซที่ได้รับการสืบทอดมา ไม่อนุญาตให้มีการทำซ้ำที่นี่และเป็นไปไม่ได้ที่ความสัมพันธ์ทางมรดกจะสร้างการพึ่งพาแบบวงกลม จากนั้นร่างกายของอินเทอร์เฟซที่อยู่ในวงเล็บปีกกาก็มาถึง มีการประกาศองค์ประกอบในเนื้อความของอินเทอร์เฟซ: ฟิลด์ค่าคงที่และวิธีนามธรรม ฟิลด์ทั้งหมดเป็นแบบคงที่สุดท้ายสาธารณะ - โมดิฟายเออร์เหล่านี้ทั้งหมดเป็นทางเลือก วิธีการทั้งหมดถือเป็นนามธรรมสาธารณะ - สามารถระบุตัวปรับแต่งเหล่านี้ได้ด้วย ตอนนี้มีการพูดถึงความแตกต่างระหว่างคลาสนามธรรมและอินเทอร์เฟซ Java เพียงพอแล้ว
- อินเทอร์เฟซสาธารณะ AI ขยาย B, C, D {
- // ร่างกาย
- }
ในการประกาศคลาสเป็นการสืบทอดจากอินเทอร์เฟซให้ใช้คีย์เวิร์ด implements:
- คลาส AClass ใช้ BI, CI, DI {}
นั่นคือถ้าระบุชื่ออินเทอร์เฟซหลังจากดำเนินการในการประกาศคลาสคลาสจะดำเนินการ ผู้สืบทอดของคลาสนี้สืบทอดองค์ประกอบดังนั้นพวกเขาจึงนำไปใช้ด้วย
อนุญาตให้ใช้ตัวแปรอินเทอร์เฟซได้เช่นกันพวกเขาสามารถอ้างถึงประเภทของคลาสที่ใช้อินเทอร์เฟซนี้หรือ null ตัวแปรดังกล่าวมีองค์ประกอบทั้งหมดของคลาส Object เนื่องจากอ็อบเจ็กต์ได้มาจากคลาสและในทางกลับกันตัวแปรเหล่านั้นจะได้รับการสืบทอดมาจากคลาสอ็อบเจ็กต์
ในบทความนี้เราได้ดูองค์ประกอบบางส่วนของโมเดลวัตถุ Java - คลาสนามธรรมวิธีนามธรรมอินเทอร์เฟซ