ในบทนี้ เราจะแนะนำให้คุณรู้จักกับ Interface ในภาษา C#
และวิธีใช้งานร่วมกับ Inheritance ของคลาส
ซึ่งถือว่าเป็นคุณสมบัติหนึ่งของการเขียนโปรแกรมเชิงวัตถุ
รูปแบบของการสร้าง Interface ในภาษา C# เป็นดังนี้
คุณสามารถทำการ implement ได้หลาย interfaces โดยการใช้เครอื่งหมาย comma เช่นกัน ต่อไปมาดูตัวอย่างการใช้าน Interface
นอกจากนี้ Interfaces ยังสามารถใช้ในการสร้างตัวแปรได้ ซึ่งทำให้มันเป็นคุณสมบัติของ Polymorphism ในภาษา C# ด้วยนั้นเอง เช่นการเปลี่ยนในเมธอด Main เป็น
Interfaces คืออะไร
Interfaces นั้นจะประกอบไปด้วยข้อกำหนดที่สร้างขึ้นเท่านั้น ซึ่งจะประกอบไปด้วยเมธอด properties events หรือ indexers มันถูกใช้สำหรับการ implement ของคลาส โดยในการนำ interfaces ไป implement นั้นจะต้องทำการ define เมธอด body ให้กับ interfaces เสมอรูปแบบของการสร้าง Interface ในภาษา C# เป็นดังนี้
interface InterfaceName { void method1(); // ... }ในการประกาศ interface นั้นคุณจะต้องใช้คำสั่ง
interface
และสมาชิกของมันเช่น method นั้นไม่ต้องมีส่วนของการทำงานอะไร
เพราะว่ามันจะถูกนำไป implement โดยคลาสนั้นเอง ในการ implement interfaces
นั้นจะใช้เครื่องหมาย :
ซึ่งเป็นเรื่องหมายเดียวกับการ Inheritance ถ้ามีการ Inherit อยู่ก่อนแล้วจะใช้เครื่องหมาย ,
แทนคุณสามารถทำการ implement ได้หลาย interfaces โดยการใช้เครอื่งหมาย comma เช่นกัน ต่อไปมาดูตัวอย่างการใช้าน Interface
using System; interface Verchicle { void move(); } class Cars : Verchicle { void Verchicle.move() { Console.WriteLine("Driving on the groud"); } } class Boat : Verchicle { void Verchicle.move() { Console.WriteLine("Sailing on the water"); } } class Program { static void Main(string[] args) { Cars car = new Cars(); Boat boat = new Boat(); car.move(); boat.move(); Console.ReadKey(); } }ในตัวอย่างนั้น เราได้สร้าง Interfaces ที่ชื่อว่า
Verchicle
ขึ้นมา เพื่อกำหนดการทำงานให้กับยานพาหนะใดๆ เช่น เมธอด move
นั้นการบอกการทำงานว่ามีอะไร แต่ไม่ประกาสการทำงานของมันใน Interfaces
เพราะเราจะนำไป implement สำหรับยานพาหนะต่างๆ
ซึ่งมันเคลื่อนที่ไม่เหมือนกันนั้นเองนอกจากนี้ Interfaces ยังสามารถใช้ในการสร้างตัวแปรได้ ซึ่งทำให้มันเป็นคุณสมบัติของ Polymorphism ในภาษา C# ด้วยนั้นเอง เช่นการเปลี่ยนในเมธอด Main เป็น
Verchicle car = new Cars(); Verchicle boat = new Boat(); car.move(); boat.move();แต่อย่างไรก็ตามก็ยังต้อง instance จาก class ที่ implement มันเสมอ
new Cars()
หรือ new Boat()
ซึ่งทั้งสองแบบนั้นจะได้ผลัพธ์เหมือนกันดังข้างล่างDriving on the ground Sailing on the waterใน บทนี้คุณได้เรียนรู้เกี่ยวกับ Interfaces ในภาษา C# และการใช้งานของมัน ซึ่งจะมีประโยชน์ในการประกาศบอกวาจะมีการทำงานนี้ไว้ล่วงหน้า แต่การทำงานของแต่ละคลาสนั่นจะไม่เหมือนกันซึ่งต้องนำไป implement โดยคลาส
ไม่มีความคิดเห็น:
แสดงความคิดเห็น