Bài giảng Lập trình hướng đối tượng nâng cao: Chương 3 do ThS. Thái Kim Phụng biên soạn trình bày nội dung về kế thừa, tính đa hình, lớp trừu tượng, lớp niêm phong, lớp trong lớp và giao diện. | LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Trường ĐH Kinh Tế Khoa Tin Học Quản Lý KẾ THỪA – ĐA HÌNH Nội dung 1. Kế thừa 2. Đa hình 3. Lớp trừu tượng 4. Lớp niêm phong 5. Lớp trong lớp 6. Giao diện KẾ THỪA (inheritance) Kế thừa là gì? Định nghĩa kế thừa Kế thừa cho phép tạo ra một lớp có (kế thừa) thuộc tính và phương thức của một lớp khác. Lớp cha trong kế thừa được gọi là lớp cơ sở (base class). Lớp con kế thừa từ một lớp cha được gọi là lớp dẫn xuất (derived class). Khai báo lớp dẫn xuất kế thừa một lớp cơ sở: class : { . } Ví dụ kế thừa Furniture Table Lounge Chair Sofa Dining Table Desk Chair class dining_table: table class desk: table class table: furniture Đơn kế thừa và đa kế thừa Đơn kế thừa là một lớp dẫn xuất chỉ được kế thừa từ một lớp cơ sở Đa kế thừa là một lớp dẫn xuất được kế thừa từ nhiều lớp cơ sở C# chỉ cho phép 1 lớp được kế thừa từ 1 lớp cơ sở. Đa kế thừa bằng cách thực thi nhiều giao diện (interface). Kế thừa được gì? Thành viên A Thành viên C Thành viên B Thành viên D Thành viên C Thành viên B Thành viên A Lớp cơ sở Lớp dẫn xuất Dẫn xuất từ Dẫn xuất từ cơ sở Được tạo trong lớp dẫn xuất Ví dụ 5’ class ConNguoi { public ConNguoi(){ } } class SinhVien:ConNguoi{ public SinhVien() { } } Lớp SinhVien kế thừa từ lớp ConNguoi Gọi hàm khởi tạo của lớp cơ sở Vì lớp dẫn xuất không thể kế thừa phương thức khởi tạo (Constructor) của lớp cơ sở nên một lớp dẫn xuất phải thực thi phương thức khởi tạo riêng của nó. Nếu lớp cơ sở có một phương thức khởi tạo mặc định (phương thức khởi tạo không có tham số) thì phương thức khởi tạo của lớp dẫn xuất được định nghĩa như cách thông thường. Gọi hàm khởi tạo của lớp cơ sở Nếu lớp cơ sở có phương thức tạo lập có tham số thì lớp dẫn xuất phải định nghĩa phương thức tạo lập có tham số theo cú pháp sau: TênLớpCon(ThamSốLớpCon): base (ThamSốLớpCha) { // Khởi tạo giá trị cho các thành phần của lớp dẫn xuất } Gọi hàm khởi tạo của lớp cơ sở // Lớp cơ sở Point2D class Point2D { public . | LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Trường ĐH Kinh Tế Khoa Tin Học Quản Lý KẾ THỪA – ĐA HÌNH Nội dung 1. Kế thừa 2. Đa hình 3. Lớp trừu tượng 4. Lớp niêm phong 5. Lớp trong lớp 6. Giao diện KẾ THỪA (inheritance) Kế thừa là gì? Định nghĩa kế thừa Kế thừa cho phép tạo ra một lớp có (kế thừa) thuộc tính và phương thức của một lớp khác. Lớp cha trong kế thừa được gọi là lớp cơ sở (base class). Lớp con kế thừa từ một lớp cha được gọi là lớp dẫn xuất (derived class). Khai báo lớp dẫn xuất kế thừa một lớp cơ sở: class : { . } Ví dụ kế thừa Furniture Table Lounge Chair Sofa Dining Table Desk Chair class dining_table: table class desk: table class table: furniture Đơn kế thừa và đa kế thừa Đơn kế thừa là một lớp dẫn xuất chỉ được kế thừa từ một lớp cơ sở Đa kế thừa là một lớp dẫn xuất được kế thừa từ nhiều lớp cơ sở C# chỉ cho phép 1 lớp được kế thừa từ 1 lớp cơ sở. Đa kế thừa bằng cách thực thi nhiều giao diện (interface). Kế thừa được gì? Thành viên A