Dẫn xuất từ Window Giả sử chúng ta bắt đầu tạo một loạt các lớp đối tượng theo hình vẽ như bên trên. Sau khi làm việc với RadioButton, CheckBox, và CommandButton một thời gian ta nhận thấy chúng chia xẻ nhiều thuộc tính và hành vi đặc biệt hơn Window nhưng lại khá tổng quát cho cả ba lớp này. Như vậy ta có thể chia các thuộc tính và hành vi thành một nhóm lớp cơ sở riêng lấy tên là Button. Sau đó ta sắp xếp lại cấu trúc kế thừa như hình vẽ | Ngôn Ngữ Lập Trình C public static comparison WhichStudentComesFirst Object 01 Object o2 Student s1 Student o1 Student s2 Student o2 return 0 public override string ToString return name biến lưu tên private string name public class Test public static void Main tạo ra hai đối tượng Student và Cat đưa chúng vào hai đối tượng Pair Student Thao new Student Thao Student Ba new Student Ba Cat Mun new Cat 5 Cat Ngao new Cat 2 Pair studentPair new Pair Thao Ba Pair catPair new Pair Mun Ngao Sinh vien t t t 0 Meo t t t 0 tạo ủy quyền theStudentDelegate new theCatDelegate new sắp xếp dùng ủy quyền theStudentDelegate Sau khi sap xep studentPair t t 0 313 Cơ Chế Ủy Quyền - Sự Kiện Ngôn Ngữ Lập Trình C studentPair. ReverseSort theStudentDelegate Sau khi sap xep nguoc studentPair t t 0 theCatDelegate Sau khi sap xep catPair t t 0 theCatDelegate Sau khi sap xep nguoc catPair t t 0 H Kết quả Sinh vien Thao Ba Meo 5 2 Sau khi sap xep studentPair Ba Thao Sau khi sap xep nguoc studentPair Thao Sau khi sap xep catPair 2 5 Sau khi sap xep nguoc catPair 5 2 Ba Trong đoạn chương trình thử nghiệm trên chúng ta tạo ra hai đối tượng Student và hai đối tượng Cat sau đó đưa chúng vào hai đối tượng chứa Pair theo từng loại. Bộ khởi dựng của lớp Student lấy một chuỗi đại diện cho tên của sinh viên và bộ khởi dựng của lớp Cat thì lấy một số int đại diện cho trọng lượng của mèo. Student Thao new Student Thao Student Ba new Student Ba Cat Mun new Cat 5 Cat Ngao new Cat 2 Pair studentPair new Pair Thao Ba Pair catPair