Interface là cái gì vậy??? sài sao???

Interface được sử dụng rất nhiều trong phân tích thiết kế hướng đối tượng,
Khi một đối tượng hiện thực một interface thì nó sẽ phải hiện thực tất cả các thuộc tính và phương thức trong interface đó.
Điều này có ứng dụng là khi 2 đối tượng có quan hệ với nhau, chúng ta chỉ cần làm việc với interface của nó mà không cần biết cụ thể nó là đối tượng nào.
Đoạn code này minh họa điều đã nói: 

public interface IMyInterface
    {
        string Name { get; set; }
        void Print();
    }
    public class MyFace1 : IMyInterface
    {
        public string Name
        {
            get;
            set;
        }

        public void Print()
        {
            Console.WriteLine(Name);
        }
    }
    public class MyFace2 : IMyInterface
    {
        public string Name
        {
            get;
            set;
        }

        public void Print()
        {
            Console.WriteLine(Name);
        }
    }
    public class Implement
    {
        public void Run(IMyInterface face)
        {
            if (null != face)
            {
                face.Print();
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyFace1 f1 = new MyFace1();
            f1.Name = "I'm face1";
            MyFace2 f2 = new MyFace2();
            f2.Name = "I'm face2";
            Implement imp = new Implement();
            imp.Run(f1);
            imp.Run(f2);
            Console.ReadKey();
        }
    }

Các bạn thấy rằng hàm Run trong lớp Implement không cần quan tâm đến đó là face1 hay face2 chỉ cần nó hiện thực IMyInterface là hàm Run có thể làm việc được.
interface còn nhiều ứng dụng, trong vấn đề trả lời cầu hỏi "dùng để làm gì" thì có 1 ví dụ như trên để bạn có thể mường tượng ra nó làm gì.
- Trong các hệ thống nhiều thành phần, mỗi phần được viết bởi nhiều nhóm phát triển khác nhau, interface có tác dụng là một bản yêu cầu để các nhóm khác hiện thực đúng chức năng mà interface yêu cầu, để nhóm khác không cần biết bạn viết gì, chỉ cần quan tâm bạn có những hàm, thuộc tính theo yêu cầu đã đặc tả là họ có thể làm việc được với nhau.
- Cách sử dụng interface cũng muôn vàn, các bạn nên hiểu về nó và khi đó áp dụng vào phân tích thiết kế hướng đối tượng tốt hơn.

 

Chôm từ: http://cione.com.vn/Questions/AnswerQuestion?Id=744&page=2&TypeSearch=-1