C # - Giao diện
Một giao diện được định nghĩa là một hợp đồng cú pháp mà tất cả các lớp kế thừa giao diện phải tuân theo. Giao diện xác định'what' một phần của hợp đồng cú pháp và các lớp dẫn xuất xác định 'how' một phần của hợp đồng cú pháp.
Giao diện xác định các thuộc tính, phương thức và sự kiện, là các thành viên của giao diện. Giao diện chỉ chứa phần khai báo của các thành viên. Lớp dẫn xuất có trách nhiệm xác định các thành viên. Nó thường giúp cung cấp một cấu trúc chuẩn mà các lớp dẫn xuất sẽ tuân theo.
Các lớp trừu tượng ở một mức độ nào đó phục vụ cùng một mục đích, tuy nhiên, chúng chủ yếu được sử dụng khi chỉ có một số phương thức được khai báo bởi lớp cơ sở và lớp dẫn xuất thực hiện các chức năng.
Khai báo giao diện
Các giao diện được khai báo bằng từ khóa interface. Nó tương tự như khai báo lớp. Các câu lệnh giao diện được công khai theo mặc định. Sau đây là một ví dụ về khai báo giao diện:
public interface ITransactions {
// interface members
void showTransaction();
double getAmount();
}
Thí dụ
Ví dụ sau minh họa việc triển khai giao diện trên:
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();
}
}
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Transaction: 001
Date: 8/10/2012
Amount: 78900
Transaction: 002
Date: 9/10/2012
Amount: 451900