วันพุธที่ 17 สิงหาคม พ.ศ. 2559

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

        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 โดยคลาส

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...