C# – Interfaces
Sebuah interface didefinisikan sebagai kontrak aturan yang harus diikuti oleh semua kelas yang mengimplementasikannya. Interface menentukan bagian ‘apa’ dari kontrak aturan tersebut, sementara kelas-kelas turunannya menentukan bagian ‘bagaimana’ dari kontrak aturan tersebut.
Interface mendefinisikan properti, method, dan event, yang merupakan anggota-anggota dari interface tersebut. Interface hanya berisi deklarasi anggota-anggota tersebut. Tanggung jawab untuk mendefinisikan anggota-anggota tersebut ada pada kelas-kelas turunannya. Interface sering membantu dalam menyediakan struktur standar yang akan diikuti oleh kelas-kelas turunannya.
Kelas abstrak juga memiliki tujuan yang mirip, namun lebih sering digunakan ketika hanya beberapa method yang perlu dideklarasikan oleh kelas dasar dan kelas turunannya yang mengimplementasikan fungsionalitasnya.
Declaring Interfaces
Interface dideklarasikan pake kata kunci interface. Mirip kayak deklarasi class. Statement interface itu defaultnya public. Ini contohnya deklarasi interface:
public interface ITransactions {
// interface members
void showTransaction();
double getAmount();
}
Contoh di bawah ini ngasih gambaran implementasi dari interface di atas:
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;
namespace InterfaceApplication {
public interface ITransactions {
// interface members
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 di-compile dan dijalankan, hasilnya bakal muncul seperti ini:
Transaction: 001
Date: 8/10/2012
Amount: 78900
Transaction: 002
Date: 9/10/2012
Amount: 451900