Bài giảng môn học Kỹ thuật lập trình C: Chương 5 - Đại học Kinh tế Luật

34 63 0
Bài giảng môn học Kỹ thuật lập trình C: Chương 5  - Đại học Kinh tế Luật

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Kỹ thuật lập trình C - Chương 5: Kế thừa và đa hình cung cấp cho người học các kiến thức: Khái niệm kế thừa, khái niệm đa hình, giao diện (interface). Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.

Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Chương 5 Kế thừa và đa hình Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Nội dung v Khái niệm kế thừa v Khái niệm đa hình v Giao diện (interface) Khoa Hệ Thống Thơng Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Kế thừa v Các  đối  tượng  có  cùng  chung  một  số  đặc  điểm,  hành vi được nhóm lại với nhau v Ví dụ Vehicle § Xe đạp § Xe máy § Xe hơi Car § Xe tải §  Phương tiện giao thơng Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Kế thừa v Ví dụ: Windows form Khoa Hệ Thống Thơng Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Kế thừa v Ví dụ: Một lớp con có thể là lớp cha của các lớp khác Business RetailBusiness KMart Macys ServiceBusiness Kinkos Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Kế thừa v Tạo ra các lớp mới từ việc sử dụng lại những thành  phần của lớp đã có v Lợi ích § Nhất qn § Thuận tiện § Tái sử dụng code Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Khai báo Kế thừa v Lớp  cơ  sở  (base  class):  làm  cơ  sở  để  các  lớp  khác  kế thừa v Lớp nhận (derived class): kế thừa đặc điểm của lớp  cơ sở v Khaibỏo Đ classLopNhan:LopCoSo Đ Vớd: ã classXeDap:PhuongTienGiaoThong ã classXeMay:PhuongTienGiaoThong iHcQucGiaTP.HCM Đại Học Kinh Tế Luật Constructor v Khơng được kế thừa v Lớp con truy cập bằng từ khóa base class HinhHoc { … public HinhHoc(double chuVi, double dienTich) { ChuVi = chuVi; DienTich = dienTich; } } class HinhTron : HinhHoc { … public HinhTron(double chuVi, double dienTich) : base(chuVi, dienTich) { } } Khoa Hệ Thống Thơng Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Từ khóa base v Dùng để truy cập đến thành phần của lớp cơ sở v Mức truy cập: § public § protected v Khai báo class { … (list_of_argument){ } } class : { base.( … ); } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Từ khóa new v Dùng để khai báo phương thức ở lớp nhận khi đã có  phương thức cùng tên ở lớp cơ sở v Ví dụ § public new void TinhDienTich() {…} Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Giao diện (Interface) v Interface  là  một  giao  ước,  khi  một  lớp  thực  hiện  inteface  thì  phải  tn  theo  đúng  những  gì  interface  đó mơ tả v Thành phần § Property § Method § Event Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Interface v Khai báo interface TenInterface { //các thành phần } v Mức truy xuất: public v Các  phương  thức  chỉ  có  phần  khai  báo,  khơng  có  phần thân Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Ví dụ interface ILamViec { string LamViec(string tenViec); } Khoa Hệ Thống Thơng Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Ví dụ(tt) v Lớp SinhVien thực hiện interface ILamViec class SinhVien { public public public : ILamViec string MSSV { get; set; } string Nganh { get; set; } string HoTen { get; set; } public string LamViec(string tenViec) { return "Sinh Vien " + HoTen + " dang " + tenViec; } } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Ví dụ(tt) v Lớp NhanVien thực hiện ILamViec class NhanVien : ILamViec { public string MSNV { get; set; } public string Phong { get; set; } public string HoTen { get; set; } public int HsLuong { get; set; } public virtual int Luong { get { return HsLuong * 800000; } } public string LamViec(string tenViec) { return "NhanVien " + HoTen + " dang " + tenViec; } } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Ví dụ(tt) v Thực thi interface static void Main(string[] args) { SinhVien a = new SinhVien(); a.HoTen = "SVA"; NhanVien b = new NhanVien(); b.HoTen = "NVB"; ILamViec lv1 = a; Console.WriteLine(lv1.LamViec("hoc bai")); ILamViec lv2 = b; Console.WriteLine(lv2.LamViec("lam bao cao")); } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Ví dụ(tt) v Kết quả Khoa Hệ Thống Thơng Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Interface v Interface có thể kế thừa v Một lớp có thể thực hiện 1 hoặc nhiều interface v Khi thực hiện interface, lớp đó phải thực hiện đầy  đủ những thành phần interface đó mơ tả Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Ví dụ v Interface IQuanTri interface IQuanTri { string GiaoViec(string tenViec, string tenNguoiNhan); } class SinhVien : ILamViec, IQuanTri { //… thành phần khác public string GiaoViec(string tenViec, string nguoiNhan) { return "Sinh vien " + HoTen + " dang giao viec " + tenViec + " cho " + nguoiNhan; } } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Ví dụ v Lớp QuanLy kế thừa NhanVien, thực hiện IQuanTri class QuanLy : NhanVien, IQuanTri { public string LamViec(string tenViec) { return "Quan ly " + HoTen + " dang " + tenViec; } public string GiaoViec(string tenViec, string nguoiNhan) { return "Quan ly " + HoTen + " dang giao viec " + tenViec + " cho " + nguoiNhan; } } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Ví dụ v Thực thi giao diện IQuanTri SinhVien a = new SinhVien(); a.HoTen = "SVA"; NhanVien b = new NhanVien(); b.HoTen = "NVB"; QuanLy c = new QuanLy(); c.HoTen = "QLC"; IQuanTri qt1 = a; Console.WriteLine(qt1.GiaoViec("truc nhat", "SVB")); IQuanTri qt2 = c; Console.WriteLine(qt2.GiaoViec("dat hang", b.HoTen)); Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Ví dụ v Kết quả Khoa Hệ Thống Thơng Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Kiểm tra thực hiện Interface v Từ khóa is § True nếu đối tượng thực hiện interface § False nếu đối tượng khơng thực hiện interface kt = a is IQuanTri; //kt =true kt = b is IQuanTri; //kt =false Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Kiểm tra thực hiện Interface v Từ khóa as § Thực hiện chuyển đổi sang interface § Nếu đối tượng không thực hiện interface  null IQuanTri qt3 = a as IQuanTri; IQuanTri qt4 = b as IQuanTri; //null Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin END .. .Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật Nội dung v Khái niệm kế thừa v Khái niệm đa hình v Giao diện (interface) Khoa Hệ Thống Thơng Tin Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật. .. §  Phương tiện giao thơng Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật Kế thừa v Ví dụ: Windows form Khoa Hệ Thống Thơng Tin Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật Khoa Hệ Thống Thơng Tin... Christmas Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật Khoa Hệ Thống Thơng Tin Đa hình ü Trường hợp 1: Từ kế thừa StaffMember  teo; teo = new Executive(); Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật

Ngày đăng: 11/01/2020, 19:36

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan