Menguasai Antarmuka C#: Mendesain Kontrak untuk Pemrograman Berorientasi Objek yang Kuat
Sebuah antarmuka didefinisikan sebagai kontrak sintaksis yang harus diikuti oleh semua kelas yang mewarisi antarmuka tersebut. Antarmuka mendefinisikan bagian 'what' dari kontrak sintaksis dan kelas yang menurun mendefinisikan bagian 'how' dari kontrak sintaksis.
Antarmuka mendefinisikan properti, metode, dan acara, yang merupakan anggota antarmuka. Antarmuka hanya berisi deklarasi anggota. Tanggung jawab kelas yang menurun adalah untuk mendefinisikan anggota. Ini sering membantu dalam menyediakan struktur standar yang akan diikuti oleh kelas yang menurun.
Kelas abstrak hingga beberapa extensi melayani tujuan yang sama, namun, sebagian besar digunakan ketika hanya beberapa metode yang dideklarasikan oleh kelas dasar dan kelas yang menurun mengimplementasikan fungsionalitasnya.
Mendeklarasikan Antarmuka
Antarmuka dideklarasikan menggunakan kata kunci interface. Mirip dengan deklarasi kelas. Pernyataan antarmuka adalah publik secara default. Berikut adalah contoh deklarasi antarmuka:
public interface ITransactions { // anggota antarmuka void showTransaction(); double getAmount(); } Contoh
Contoh berikut menunjukkan implementasi antarmuka di atas:
Live Demo
using System.Collections.Generic; using System.Linq; using System.Text; using System; namespace InterfaceApplication { public interface ITransactions { // anggota antarmuka void showTransaction(); double getAmount(); } public class Transaction : ITransactions { private string tCode; private string date; private double amount; public Transaction() { tCode = " "; date = " "; amount = 0.0; } public Transaction(string c, string d, double a) { tCode = c; date = d; amount = a; } public double getAmount() { return amount; } public void showTransaction() { Console.WriteLine("Transaction: {0}", tCode); Console.WriteLine("Date: {0}", date); Console.WriteLine("Amount: {0}", getAmount()); } } class Tester { static void Main(string[] args) { Transaction t1 = new Transaction("001", "8/10/2012", 78900.00); Transaction t2 = new Transaction("002", "9/10/2012", 451900.00); t1.showTransaction(); t2.showTransaction(); Console.ReadKey(); } } } Ketika kode di atas dikompilasi dan dieksekusi, hasilnya adalah:
Transaction: 001 Date: 8/10/2012 Amount: 78900 Transaction: 002 Date: 9/10/2012 Amount: 451900