Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

อินเทอร์เฟซและการสืบทอดใน C #


อินเทอร์เฟซ

อินเทอร์เฟซถูกกำหนดให้เป็นสัญญาวากยสัมพันธ์ที่คลาสทั้งหมดที่สืบทอดอินเทอร์เฟซควรปฏิบัติตาม อินเทอร์เฟซกำหนดส่วน 'อะไร' ของสัญญาวากยสัมพันธ์ และคลาสที่ได้รับมาจะกำหนดส่วน 'อย่างไร' ของสัญญาวากยสัมพันธ์

ให้เรามาดูตัวอย่าง Interfaces ใน C# กัน

ตัวอย่าง

<ก่อน> ใช้ System.Collections.Generic; ใช้ System.Linq; ใช้ System.Text; ใช้ System; namespace InterfaceApplication (อินเทอร์เฟซสาธารณะ ITransactions { // สมาชิกอินเทอร์เฟซเป็นโมฆะ showTransaction (); สองครั้ง getAmount(); } ธุรกรรมระดับสาธารณะ :ITransactions { tCode สตริงส่วนตัว; วันที่สตริงส่วนตัว จำนวนคู่ส่วนตัว ธุรกรรมสาธารณะ () { tCode =" "; วันที่ =" "; จำนวนเงิน =0.0; } ธุรกรรมสาธารณะ (สตริง c, สตริง d, ดับเบิล a) { tCode =c; วันที่ =d; จำนวนเงิน =a; } getAmount สองเท่าสาธารณะ () { จำนวนเงินที่คืน; } โมฆะสาธารณะ showTransaction () { Console.WriteLine ("ธุรกรรม:{0}", tCode); Console.WriteLine("วันที่:{0}" วันที่); Console.WriteLine("จำนวน:{0}", getAmount()); } } class Tester { โมฆะคงที่ Main (สตริง [] args) { ธุรกรรม t1 =ธุรกรรมใหม่ ("001", "8/10/2012", 78900.00); ธุรกรรม t2 =ธุรกรรมใหม่ ("002", "9/10/2012", 451900.00); t1.showTransaction(); t2.showTransaction(); Console.ReadKey(); } }}

ผลลัพธ์

ธุรกรรม:001วันที่:8/10/2012จำนวน:78900ธุรกรรม:002วันที่:9/10/2012จำนวนเงิน:451900

มรดก

การสืบทอดช่วยให้เราสามารถกำหนดคลาสในแง่ของคลาสอื่น ซึ่งทำให้ง่ายต่อการสร้างและบำรุงรักษาแอปพลิเคชัน นอกจากนี้ยังเปิดโอกาสให้นำฟังก์ชันโค้ดกลับมาใช้ใหม่และเพิ่มความเร็วในการติดตั้ง

แนวคิดเรื่องการสืบทอดใช้ความสัมพันธ์แบบ IS-A ตัวอย่างเช่น สัตว์เลี้ยงลูกด้วยนม IS A สัตว์ สุนัข IS-A สัตว์เลี้ยงลูกด้วยนม ดังนั้น สุนัข IS-A สัตว์ด้วย เป็นต้น

ต่อไปนี้คือตัวอย่างที่แสดงวิธีการทำงานกับ Inheritance ใน C#

ตัวอย่าง

ใช้ System;namespace InheritanceApplication { รูปร่างคลาส { โมฆะสาธารณะ setWidth (int w) { width =w; } โมฆะสาธารณะ setHeight(int h) { height =h; } ป้องกันความกว้าง; ป้องกันความสูง int; } // คลาสที่ได้รับ สี่เหลี่ยมผืนผ้า:รูปร่าง { int getArea สาธารณะ () { กลับ (กว้าง * สูง); } } คลาส RectangleTester { โมฆะคงที่ Main (สตริง [] args) { Rectangle Rect =สี่เหลี่ยมผืนผ้าใหม่ (); Rect.setWidth(5); Rect.setHeight(7); // พิมพ์พื้นที่ของวัตถุ Console.WriteLine("พื้นที่ทั้งหมด:{0}", Rect.getArea()); Console.ReadKey(); } }}

ผลลัพธ์

พื้นที่ทั้งหมด:35