‫ยินดีต้อนรับกลับ.
‫ในวิดีโอนี้ ฉันอยากจะพูดถึงวิธีการปิดผนึกหรือโดยทั่วไปแล้ว คำหลักการประทับตรา
‫ดังนั้น ถ้าฉันต้องการแทนที่เมธอด ฉันสามารถทำให้มันเสมือนใน base clause แล้วแทนที่ใน
‫deriving clause
‫เราจึงได้เห็นแล้วว่า
‫แต่ถ้าฉันมีคลาสอื่นล่ะ?
‫ฉันสามารถทำได้มากกว่านี้หรือไม่?
‫สมมติว่าฉันสร้างคลาสใหม่ที่นี่ เพิ่มคลาส และฉันจะเรียกมันว่า 1m3 ซึ่งจะทำเป็น
‫BMW M3 ดังนั้นคลาสย่อยของ BMW หรือคลาสการขับขี่
‫หมายความว่าเราจำเป็นต้องใช้ BMW ที่นี่ และตอนนี้ เราต้องสร้างคอนสตรัคเตอร์
‫ผมจะคัดลอกอันหนึ่งจากตรงนั้น
‫และที่นี่ฉันจะเพิ่มโมเดลด้วย
‫ตรงนี้จะเป็น M สาม
‫ตอนนี้ก็ไม่บ่นแล้ว
‫ฉันเพิ่งเพิ่มว่าเพื่อไม่ให้บ่นเพราะมันต้องการ
‫มิฉะนั้นเราจะต้องมีตัวสร้างเริ่มต้น
‫มิฉะนั้นถ้าเราไม่ต้องการทำอย่างนั้นในคลาสพื้นฐานของเรา
‫ดังนั้นในที่นี้ เราต้องการคอนสตรัคเตอร์เริ่มต้นอย่างที่เราเคยเห็นมาก่อน
‫ดังนั้นรถแบบนั้น ตัวอย่างเช่น นี่คือตัวสร้างเริ่มต้น ตัวสร้างเริ่มต้น
‫และตอนนี้ถ้าฉันไปข้างหน้าและกำจัดสิ่งนี้
‫มันไม่ได้
‫มันยังคงบ่นอยู่ แต่นั่นเป็นเพราะ BMW ไม่มีตัวสร้างเริ่มต้นเช่นกัน
‫บีเอ็มดับเบิลยูก็เป็นเช่นนั้น
‫และตอนนี้เราสามารถดำเนินการกำจัดสิ่งนี้ได้ที่นี่
‫อย่างที่คุณเห็นตอนนี้ก็ไม่บ่นแล้ว
‫แต่เนื่องจากฉันไม่ต้องการทำอย่างนั้น และเนื่องจากฉันไม่ต้องการสร้างตัวสร้างเริ่มต้นเหล่านั้นทั้งหมด จึงเกี่ยวกับคำหลักที่ปิดผนึกมากกว่า
‫สมมุติว่าฉันต้องการแทนที่วิธีนี้ที่นี่
‫ดังนั้นวิธีการซ่อมของ BMW ซึ่งถูกแทนที่จากรถยนต์อยู่แล้วในขณะนี้และฟรี ต้องการที่จะแทนที่สิ่งนั้นด้วย
‫ดังนั้นฉันจะไปข้างหน้าและสร้างการซ่อมแซมโมฆะแทนที่และที่นี่เรียกว่าการซ่อมแซมฐานแล้ว
‫มันก็แค่เรียกคลาสฐาน แล้วก็เป็นวิธีการซ่อมแซม
‫ในกรณีนี้ก็จะเรียกวิธีการซ่อมแซมนี้
‫ตอนนี้ฉันทำได้ ฉันสามารถลบล้างมันได้ และฉันสามารถดำเนินการต่อและสร้างวัตถุของ RM สามได้
‫เรามาสร้าง 1 และ 3 กัน จะเป็น RM สามของฉัน และมันคือ M สามตัวใหม่ และฉันจะเพิ่ม HP ขึ้นมา
‫สมมุติว่า 260
‫สีจะเป็นสีแดงและรุ่นจะเป็น m3c Super Turbo หรืออะไรก็ตาม
‫ไม่ใช่รถโปร
‫ผมจะเรียกมันว่า RM 3 Super Turbo
‫และตอนนี้ถ้าฉันเรียกวิธีการซ่อมแซม RM แบบสามจุดของฉัน มันจะเรียกวิธีการพื้นฐานเพียงอย่างเดียว
‫ดังนั้น BMW Super Turbo จึงได้รับการซ่อมแซม
‫แม้ว่าฉันจะไม่ได้เพิ่มอะไรเข้าไป แต่ฉันเรียกการซ่อมพื้นฐานนี้
‫ตอนนี้กำลังเรียกวิธีการซ่อมของบีเอ็มดับเบิลยู
‫อย่างที่คุณเห็นนี่อันนี้
‫โอเค นั่นก็เรื่องหนึ่ง แต่ถ้าฉันต้องการปิดผนึกล่ะ?
‫อย่างที่เราพูดไปก่อนหน้านี้ว่า ถ้าคุณต้องการปิดผนึกเพื่อไม่ให้วิธีนี้ถูกแทนที่อีกต่อไป ฉันสามารถเพิ่มคีย์เวิร์ดของโล่นี้ได้
‫ตอนนี้ฉันต้องทำอย่างนั้นก่อนแทนที่คำหลัก
‫มิฉะนั้นจะไม่ทำงาน
‫ดังนั้นคุณไม่สามารถพูดได้ว่า โอเค ฉันจะปิดผนึกวิธีเสมือนนี้เพราะนั่นจะตรงกันข้าม
‫เสมือนอนุญาตให้แทนที่ การปิดผนึกไม่อนุญาตให้แทนที่
‫ดังนั้นถ้าฉันแทนที่ virtual ด้วยปิดผนึกตอนนี้การซ่อมแซมก็จะบ่นเพราะมันบอกว่าไม่สามารถปิดผนึกได้เพราะมันไม่ใช่การแทนที่
‫ดังนั้น คุณทำได้เพียงปิดผนึกวิธีการแทนที่ ซึ่งหมายความว่ารถที่อยู่เหนือรถมีวิธีเสมือนที่เรียกว่าการซ่อมแซม
‫BMW สืบทอดวิธีการนั้นและเขียนทับมัน และตอนนี้มันปิดผนึกไว้ ดังนั้น RM 3 ของฉันจึงไม่สามารถใช้งานได้อีกต่อไป
‫อย่างที่คุณเห็นไม่สามารถแทนที่สมาชิกที่สืบทอดมาได้เพราะถูกผนึก
‫ตอนนี้ฉันไม่สามารถแทนที่วิธีนี้ได้อีกต่อไป
‫และนั่นคือสิ่งที่เกี่ยวกับคีย์เวิร์ดปิดผนึกทั้งหมด
‫ดังนั้นคุณจึงปิดผนึกมรดก ดังนั้นคุณจึงไม่อนุญาตให้มีมรดก และคุณสามารถทำสิ่งเดียวกันได้ ไม่เพียงแต่กับวิธีการเท่านั้น
‫แต่คุณยังสามารถทำสิ่งนั้นกับรถยนต์ได้ด้วย
‫สมมติว่าฉันต้องการปิดผนึกคลาส BMW ของฉันเพื่อไม่ให้สืบทอดต่อจากนั้น
‫ทั้งคลาสนี้จะไม่สามารถสืบทอดจากบีเอ็มดับเบิลยูได้
‫ดังนั้นความสำเร็จของที่นี่จึงมาจากรถบีเอ็มดับเบิลยูประเภทปิดผนึก
‫เอาล่ะ นั่นคือสิ่งที่ SEAL ทำ
‫มันก็แค่ปิดมันเพื่อสืบทอดต่อไป
‫ไม่เป็นไร.
‫ตอนนี้คุณได้เห็นแล้วว่าคุณสามารถใช้การเขียนทับได้อย่างไร จากนั้นจึงซ่อนสมาชิกด้วยคีย์เวิร์ดใหม่
‫และตอนนี้คุณจะเห็นวิธีใช้คีย์เวิร์ดปิดผนึกเพื่อปิดผนึกวิธีการเขียนทับ