เมื่อคุณใช้ตัวดัดแปลงที่ปิดสนิทใน C # บนเมธอด เมธอดนั้นจะสูญเสียความสามารถในการแทนที่ วิธีการปิดผนึกควรเป็นส่วนหนึ่งของคลาสที่ได้รับและวิธีการจะต้องเป็นวิธีที่ถูกแทนที่
เรามาดูตัวอย่างกัน −
ตัวอย่างต่อไปนี้จะไม่อนุญาตให้คุณแทนที่เมธอด display() เนื่องจากมีตัวแก้ไขแบบปิดผนึกสำหรับคลาสที่ได้รับ ClassTwo -
ClassOne คือคลาสพื้นฐานของเรา ในขณะที่ ClassTwo และ ClassThree เป็นคลาสที่ได้รับ -
ตัวอย่าง
class ClassOne { public virtual void display() { Console.WriteLine("baseclass"); } } class ClassTwo : ClassOne { public sealed override void display() { Console.WriteLine("ClassTwoderivedClass"); } } class ClassThree : ClassTwo { public override void display() { Console.WriteLine("ClassThree: Another Derived Class"); } }
ด้านบน ภายใต้คลาสที่ได้รับ ClassThree เราได้พยายามแทนที่วิธีการปิดผนึก นี่จะแสดงข้อผิดพลาดเนื่องจากไม่อนุญาตเมื่อคุณใช้วิธีปิดผนึก