07/05/2018, 15:02

Interface trong C#

Một Interface được định nghĩa như là một giao ước có tính chất cú pháp (syntactical contract) mà tất cả lớp kế thừa Interface đó nên theo. Interface định nghĩa phần " Là gì " của giao ước và các lớp kế thừa định nghĩa phần " Cách nào " của giao ước đó. Interface định nghĩa các thuộc ...

Một Interface được định nghĩa như là một giao ước có tính chất cú pháp (syntactical contract) mà tất cả lớp kế thừa Interface đó nên theo. Interface định nghĩa phần "Là gì" của giao ước và các lớp kế thừa định nghĩa phần "Cách nào" của giao ước đó.

Interface định nghĩa các thuộc tính, phương thức và sự kiện, mà là các thành viên của Interface đó. Các Interface chỉ chứa khai báo của các thành viên này. Việc định nghĩa các thành viên là trách nhiệm của lớp kế thừa. Nó thường giúp ích trong việc cung cấp một Cấu trúc chuẩn mà các lớp kế thừa nên theo.

Khai báo

Các Interface được khai báo bởi sử dụng từ khóa interface trong C#. Nó tương tự như khai báo lớp. Theo mặc định, các lệnh Interface là puclic. Ví dụ sau minh họa một khai báo :

public interface ITransactions
{
   // các thành viên của interface
   
   //các phương thức
   void hienThiThongTinGiaoDich();
   double laySoLuong();
}

Ví dụ

Sau đây là ví dụ minh họa trình triển khai của Interface trên: tạo 2 lớp có tên lần lượt là GiaoDichHangHoa, TestCsharp và một interface có tên là GiaoDich

interface GiaoDich

using System;

namespace VietJackCsharp
{
    public interface GiaoDich
    {
        // cac thanh vien cua interface

        //cac phuong thuc
        void hienThiThongTinGiaoDich();
        double laySoLuong();
    }
}

Lớp GiaoDichHangHoa kế thừa interface GiaoDich

using System;

namespace VietJackCsharp
{
    class GiaoDichHangHoa : GiaoDich
    {
      private string ma_hang_hoa;
      private string ngay;
      private double so_luong;
      public GiaoDichHangHoa()
      {
          ma_hang_hoa = " ";
          ngay = " ";
          so_luong = 0.0;
      }

      public GiaoDichHangHoa(string c, string d, double a)
      {
          ma_hang_hoa = c;
          ngay = d;
          so_luong = a;
      }
      
      public double laySoLuong()
      {
          return so_luong;
      }
      
      public void hienThiThongTinGiaoDich()
      {
          Console.WriteLine("Ma hang hoa: {0}", ma_hang_hoa);
          Console.WriteLine("Ngay giao dich: {0}", ngay);
         Console.WriteLine("So luong: {0}", laySoLuong());
      }
    }
}

Lớp TestCsharp chứa phương thức main() để thao tác trên đối tượng GiaoDichHangHoa

using System;
namespace VietJackCsharp
{
    public class TestCsharp
    {
        static void Main(string[] args)
        {
            Console.WriteLine("");
            Console.WriteLine("Vi du minh hoa interface");
            Console.WriteLine("--------------------------");

            //tao cac doi tuong GiaoDichHangHoa
            GiaoDichHangHoa t1 = new GiaoDichHangHoa("001", "8/10/2012", 78900.00);
            GiaoDichHangHoa t2 = new GiaoDichHangHoa("002", "9/10/2012", 451900.00);
            t1.hienThiThongTinGiaoDich();
            t2.hienThiThongTinGiaoDich();

            Console.ReadKey();
        }
    }
}

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

Mọi người cho thể tham gia khóa học thứ 6 của vietjackteam (đang tuyển sinh) vào đầu tháng 03/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : .Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng.

Mọi người có thể xem demo nội dung khóa học tại địa chỉ

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Trong tháng 4/2018, VietJack khuyến mại giá SỐC chỉ còn 150k cho khóa học, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại

Loạt bài hướng dẫn học C# cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com

Follow fanpage của team hoặc facebook cá nhân Nguyễn Thanh Tuyền để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Bài học C# phổ biến khác tại vietjack.com:

0