Java abstract class สามารถมีตัวสร้างได้หรือไม่?
Java abstract class สามารถมีตัวสร้างได้หรือไม่?

วีดีโอ: Java abstract class สามารถมีตัวสร้างได้หรือไม่?

วีดีโอ: Java abstract class สามารถมีตัวสร้างได้หรือไม่?
วีดีโอ: สอน Java: การออกแบบโดยใช้ Inheritance-Based Polymorphism ตอนที่ 1 (Abstract class as a data type) 2024, อาจ
Anonim

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

ดังนั้น คอนสตรัคเตอร์สามารถเป็นนามธรรมใน Java ได้หรือไม่?

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

ในทำนองเดียวกัน คุณจะเรียกคอนสตรัคเตอร์คลาสนามธรรมได้อย่างไร คุณสามารถกำหนด a ตัวสร้าง ใน คลาสนามธรรม แต่คุณไม่สามารถสร้างวัตถุนั้นได้ อย่างไรก็ตาม คอนกรีตย่อย ชั้นเรียน สามารถ (และต้อง) เรียก หนึ่งใน ตัวสร้าง ที่กำหนดไว้ใน บทคัดย่อ พ่อแม่ ระดับ . คุณไม่สามารถ เรียก NS ตัวสร้างคลาสนามธรรม กับ ระดับ นิพจน์การสร้างอินสแตนซ์ เช่น

เช่นเดียวกัน ผู้คนถามว่าทำไมคลาสนามธรรมถึงมีคอนสตรัคเตอร์?

NS ตัวสร้าง ใน Java ไม่ได้ "สร้าง" วัตถุจริง ๆ แต่ใช้เพื่อเริ่มต้นฟิลด์ ลองนึกภาพว่า.ของคุณ คลาสนามธรรมมี ฟิลด์ x และ y และคุณต้องการให้เริ่มต้นด้วยวิธีใดวิธีหนึ่งเสมอ ไม่ว่าในที่สุดคลาสย่อยที่เป็นรูปธรรมจริง ๆ จะถูกสร้างขึ้นในที่สุด

คลาสนามธรรมสามารถมีวัตถุใน Java ได้หรือไม่?

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

แนะนำ: