Interfaces

ในบทนี้ เราจะแนะนำให้คุณรู้จักกับ Interface ในภาษา C# และวิธีใช้งานร่วมกับ Inheritance ของคลาส ซึ่งถือว่าเป็นคุณสมบัติหนึ่งของการเขียนโปรแกรมเชิงวัตถุ

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();
}
}

ในตัวอย่างนั้น เราได้สร้าง 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 โดยคลาส


บทความเกี่ยวกับ Interfaces

Interfaces ในภาษา Java

ในบทนี้ คุณจะได้เรียนรู้เกียวกับ interface เราจะพูดถึงการสร้างและการนำไปใช้งานร่วมกับคลาสในภาษา Java Interface นั้นคล้ายกับคลาส แต่ภายใน interface จะมีได้แค่ค...

Interfaces ในภาษา Visual Basic

Interfaces คือการอธิบายการกระทำที่ออบเจ็คสามารถทำได้ ยกตัวอย่างเช่น เมื่อคุณเปิด TV คุณจะต้องกดปุ่มเปิดเพื่อที่จะเปิดมัน เราทราบว่า TV จำเป็นต้องมีปุ่มเพื่อที่จ...

Interfaces ในภาษา PHP

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับ Interfaces ในภาษา PHP ในการเขียนโปรแกรมเชิงวัตถุ (OOP) Interfaces คือประเภทข้อมูลแบบนามธรรม (Abstract type) ที่ไม่ได้มีการกำหน...