ในบทนี้ เราจะแนะนำให้คุณรู้จักกับ 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 โดยคลาส
ไม่มีความคิดเห็น:
แสดงความคิดเห็น