บทช่วยสอน C # polymorphism ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ มีหลายรูปแบบคงที่,ฟังก์ชั่นการบรรทุกเกินพิกัด,มีหลายรูปแบบไดนามิค,
polymorphism หมายความว่ามีหลายรูปแบบในเชิงวัตถุกระบวนทัศน์การเขียนโปรแกรม polymorphism มักจะแสดงเป็น "อินเตอร์เฟซที่หนึ่งฟังก์ชั่นหลาย."
ความแตกต่างสามารถเป็นแบบคงที่หรือแบบไดนามิกมีหลายรูปแบบคงที่ในฟังก์ชั่นการตอบสนองที่เกิดขึ้นในเวลารวบรวมในหลายรูปแบบไดนามิก, ฟังก์ชั่นการตอบสนองที่เกิดขึ้นที่รันไทม์
ที่รวบรวมเวลาการทำงานของกลไกการเชื่อมต่อและวัตถุที่เรียกว่าการรวมก่อนยังเป็นที่รู้จักคงมีผลผูกพัน C # มีสองเทคนิคในการดำเนินการหลายรูปแบบคงที่ พวกเขาคือ
ดำเนินงานมากจะหารือในส่วนถัดไปเราจะหารือเกี่ยวกับการโอเวอร์โหลดฟังก์ชั่นดังต่อไปนี้
คุณสามารถอยู่ในช่วงเดียวกันชื่อฟังก์ชั่นเดียวกันมีคำจำกัดความหลาย ฟังก์ชั่นที่กำหนดไว้จะต้องแตกต่างจากคนอื่น ๆ อาจจะเป็นรายการพารามิเตอร์ชนิดพารามิเตอร์ยังสามารถเป็นจำนวนพารามิเตอร์ที่แตกต่างกัน คุณไม่สามารถจะมากเกินไปตามประเภทของการกลับมาของการประกาศฟังก์ชันเท่านั้น
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงหลายพิมพ์ฟังก์ชันเดียวกัน () สำหรับการพิมพ์ที่แตกต่างกันของข้อมูล:
การใช้ระบบ PolymorphismApplication namespace { ระดับ Printdata { พิมพ์เป็นโมฆะ (int i) { Console.WriteLine ( "พิมพ์ int: {0}" ผม); } พิมพ์เป็นโมฆะ (Double F) { Console.WriteLine ( "พิมพ์ลอย: {0}", F); } เป็นโมฆะพิมพ์ (String s) { Console.WriteLine ( "สตริงพิมพ์: {0}", S); } เป็นโมฆะคง main (String args []) { P = Printdata ใหม่ Printdata (); // เรียกใช้พิมพ์เพื่อพิมพ์ p.print จำนวนเต็ม (5) // เรียกใช้พิมพ์จะพิมพ์ p.print ลอย (500.263); // เรียกใช้พิมพ์ไปสตริงพิมพ์ p.print ( "สวัสดี c ++"); Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
int พิมพ์: 5 ลอยการพิมพ์: 500.263 สตริงพิมพ์: สวัสดี c ++
C #ช่วยให้คุณสามารถใช้คำหลักที่เป็นนามธรรมที่จะสร้างระดับนามธรรมใช้อินเตอร์เฟซให้เป็นส่วนหนึ่งของการเรียนเมื่อคลาสที่ได้รับสืบทอดมาจากระดับนามธรรมเพื่อให้บรรลุสมบูรณ์ระดับนามธรรมมีวิธีนามธรรมนามธรรมวิธีการที่สามารถนำมาใช้เป็นชั้นเรียนมาคลาสที่ได้รับมีฟังก์ชั่นพิเศษเพิ่มเติม
โปรดทราบว่าต่อไปนี้เป็นกฎบางอย่างสำหรับการเรียนบทคัดย่อ:
โปรแกรมต่อไปนี้แสดงให้เห็นถึงระดับนามธรรม:
การใช้ระบบ PolymorphismApplication namespace { รูปร่างระดับนามธรรม { พื้นที่สาธารณะ int นามธรรม (); } ระดับสี่เหลี่ยมผืนผ้าทรง { ความยาว int เอกชน ความกว้าง int เอกชน สี่เหลี่ยมผืนผ้าสาธารณะ (int A = 0, int B = 0) { ความยาว = a; width = B; } พื้นที่ int แทนที่ประชาชน () { Console.WriteLine ( "พื้นที่ชั้นสี่เหลี่ยมผืนผ้า:"); ผลตอบแทน (กว้างยาว *); } } ระดับ RectangleTester { เป็นโมฆะคง main (String args []) { สี่เหลี่ยมผืนผ้า r = สี่เหลี่ยมผืนผ้าใหม่ (10, 7); Double A = r.area (); Console.WriteLine ( "ขนาด: {0}" เป็น); Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
สี่เหลี่ยมผืนผ้าขนาดของชั้นเรียน: พื้นที่: 70
เมื่อมีฟังก์ชั่นที่กำหนดไว้ในชั้นเรียนจะต้องมีการดำเนินการในชั้นเรียนมา,คุณสามารถใช้วิธีเสมือนวิธีการเสมือนมีการประกาศใช้คำสำคัญเสมือน วิธีเสมือนจริงอาจจะดำเนินการแตกต่างกันในชั้นเรียนได้รับการถ่ายทอดที่แตกต่างกัน โทรวิธีเสมือนเกิดขึ้นที่รันไทม์
ความแตกต่างแบบไดนามิกจะทำได้โดยคลาสนามธรรมและวิธีการเสมือน
โปรแกรมต่อไปนี้แสดงให้เห็นถึงจุดนี้:
การใช้ระบบ PolymorphismApplication namespace { รูปร่างระดับ { การป้องกันความกว้าง int สูง; รูปร่างสาธารณะ (int A = 0, int B = 0) { ความกว้าง = a; height = B; } พื้นที่สาธารณะ int เสมือน () { Console.WriteLine ( "พื้นที่ปกครอง:"); กลับ 0; } } ระดับสี่เหลี่ยมผืนผ้าทรง { สี่เหลี่ยมผืนผ้าสาธารณะ (int A = 0, int B = 0): ฐาน (A, B) { } พื้นที่ int แทนที่ประชาชน () { Console.WriteLine ( "พื้นที่ชั้นสี่เหลี่ยมผืนผ้า:"); กลับ (กว้าง * สูง); } } สามเหลี่ยมระดับทรง { สาธารณะสามเหลี่ยม (int A = 0, int B = 0): ฐาน (A, B) { } พื้นที่ int แทนที่ประชาชน () { Console.WriteLine ( "พื้นที่ชั้นสามเหลี่ยม:"); กลับ (กว้าง * สูง / 2); } } ระดับผู้โทรเข้า { โมฆะสาธารณะ CallArea (รูปร่าง SH) { int a; A = sh.area (); Console.WriteLine ( "ขนาด: {0}" เป็น); } } ทดสอบระดับ { เป็นโมฆะคง main (String args []) { Caller c = Caller ใหม่ (); สี่เหลี่ยมผืนผ้า r = สี่เหลี่ยมผืนผ้าใหม่ (10, 7); สามเหลี่ยม t = ใหม่สามเหลี่ยม (10, 5) c.CallArea (R); c.CallArea (T); Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
สี่เหลี่ยมผืนผ้าขนาดของชั้นเรียน: พื้นที่: 70 พื้นที่ชั้นสามเหลี่ยม: พื้นที่: 25