TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1HOCLAPTRINHWEB.COM
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
2HOCLAPTRINHWEB.COM
Bài 5: Tính thừa kế và Đa hình
• Tính thừa kế (Inheritance)
• Lớp trừu tượng (Abstract)
• Lớp niêm phong (Sealed)
• Tính đa hình của lớp (Polymorphism)
- 8 tiết -
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
3HOCLAPTRINHWEB.COM
Tính thừa kế (Inheritance)
• Khái niệm
• Xây dựng lớp kế thừa
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
4HOCLAPTRINHWEB.COM
Khái niệm
• Tính thừa kế là một khái niệm nền tảng cho
phép tái sử dụng mã lệnh đang tồn tại và điều
này giúp tiết kiệm được thời gian trong việc
lập trình
• Các class có thể thừa kế từ class khác. Class
mới được gọi là class được dẫn xuất (hay còn
gọi là class con) sẽ được quyền truy xuất đến
tất cả các thành viên dữ liệu và các phương
thức không được biểu thị private của class cơ
sở (hay còn gọi là class cha)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
5HOCLAPTRINHWEB.COM
Xây dựng lớp kế thừa
• Cú pháp:
Tên_class_con : Tên_class_cơ_sở
• Ví dụ 1:
 Xét class cơ sở với khai báo như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
6HOCLAPTRINHWEB.COM
Xây dựng lớp kế thừa
• Ví dụ 1:
 Xét class được dẫn xuất từ class cơ sở với khai báo
như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
7HOCLAPTRINHWEB.COM
Xây dựng lớp kế thừa
• Ví dụ 1:
 Kết quả xuất ra màn hình khi thực thi ví dụ trên:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
8HOCLAPTRINHWEB.COM
Xây dựng lớp kế thừa
• Ví dụ 2:
 Xét class cơ sở với khai báo như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
9HOCLAPTRINHWEB.COM
Xây dựng lớp kế thừa
• Ví dụ 2:
 Xét hai class được dẫn xuất từ class cơ sở với khai báo
như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
10HOCLAPTRINHWEB.COM
Xây dựng lớp kế thừa
• Ví dụ 2:
 Đoạn lệnh khai báo và khởi tạo đối tượng như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
11HOCLAPTRINHWEB.COM
Xây dựng lớp kế thừa
• Ví dụ 2:
 Kết quả xuất ra màn hình khi thực thi đoạn lệnh trên:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
12HOCLAPTRINHWEB.COM
Lớp trừu tượng (Abstract)
• Khái niệm
• Xây dựng lớp trừu tượng
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
13HOCLAPTRINHWEB.COM
Khái niệm
• class trừu tượng thực chất là class cơ sở
(base class) mà các class khác có thể được
dẫn xuất từ nó.
• Các class không phải là class trừu tượng
(non-abstract class) được gọi là lớp cụ thể
(concrete class)
• class trừu tượng có thể có cả hai loại
phương thức: phương thức trừu tượng và
phương thức cụ thể.
• Một kiểu được dẫn xuất từ một lớp cơ sở
trừu tượng thừa kế tất cả các thành viên kiểu
cơ sở bao gồm sự thực thi mọi phương thức
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
14HOCLAPTRINHWEB.COM
Khái niệm
• Khi nào thì sử dụng class trừu tượng?
 Nếu muốn tạo các class mà các class này sẽ chỉ là
các class cơ sở, và không muốn bất cứ ai tạo các đối
tượng của các kiểu class này.
 Class trừu tượng thường được dùng để biểu thị rằng
nó là class không đầy đủ và rằng nó được dự định sẽ
chỉ được dùng như là một class cơ sở.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
15HOCLAPTRINHWEB.COM
Xây dựng lớp trừu tượng
• Cú pháp:
<khai báo cấp độ truy xuất> abstract class tên_class
{
// Các thành viên của class trừu tượng.
}
• Ví dụ 1:
 Xét class trừu tượng được khai báo như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
16HOCLAPTRINHWEB.COM
Xây dựng lớp trừu tượng
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
17HOCLAPTRINHWEB.COM
Xây dựng lớp trừu tượng
• Ví dụ 1:
 Kết quả được xuất ra màn hình:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
18HOCLAPTRINHWEB.COM
Xây dựng lớp trừu tượng
• Ví dụ 2:
 Xét lớp trừu tượng và lớp dẫn xuất được khai báo như
sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
19HOCLAPTRINHWEB.COM
Xây dựng lớp trừu tượng
• Ví dụ 2:
 Xét đoạn lệnh khai báo và gọi thực thi như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
20HOCLAPTRINHWEB.COM
Xây dựng lớp trừu tượng
• Ví dụ 2:
 Kết quả xuất ra màn hình:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
21HOCLAPTRINHWEB.COM
Xây dựng lớp trừu tượng
• Chú ý:
 Mục tiêu của một class trừu tượng là cung cấp định
nghĩa chung của một class cơ sở mà nhiều class được
dẫn xuất có thể chia sẻ.
 Một thành viên abstract không thể là static
 Không thể tạo một instance của class trừu tượng
 Một class trừu tượng không thể được niêm phong
(Sealed).
 Một phương thức trừu tượng không thể là private .
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
22HOCLAPTRINHWEB.COM
Xây dựng lớp trừu tượng
• Chú ý:
 Từ khóa Override : hành động ghi đè (Overriding) là
hành động sửa đổi hoặc thay thế sự cài đặt của class
cha với một cài đặt mới. Các thành viên virtual hoặc
abstract của class cha cho phép các class dẫn xuất ghi
đè chúng.
 Phương thức abstract thực chất là một phương thức
virtual ngầm định.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
23HOCLAPTRINHWEB.COM
Lớp niêm phong (Sealed)
• Khái niệm
• Xây dựng lớp niêm phong
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
24HOCLAPTRINHWEB.COM
Khái niệm
• Từ khóa sealed được sử dụng để biểu thị khi
khai báo một class nhằm ngăn ngừa sự dẫn
xuất từ một class, điều này cũng giống như
việc ngăn cấm một class nào đó có class con.
• Một class sealed cũng không thể là một class
trừu tượng.
• Các structs trong C# được ngầm định sealed.
Do vậy, chúng không thể được thừa kế.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
25HOCLAPTRINHWEB.COM
Xây dựng lớp niêm phong
• Cú pháp:
<khai báo cấp độ truy xuất> sealed class tên_class
{
// Các thành viên của class trừu tượng.
}
• Ví dụ:
 Xét class niêm phong được khai báo như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
26HOCLAPTRINHWEB.COM
Xây dựng lớp niêm phong
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
27HOCLAPTRINHWEB.COM
Xây dựng lớp niêm phong
• Ví dụ:
 Kết quả xuất ra màn hình:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
28HOCLAPTRINHWEB.COM
Tính đa hình của lớp (Polymorphism)
• Từ khóa base, this
• Ghi đè (overriding)
• Nạp chồng hàm (Overloading)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
29HOCLAPTRINHWEB.COM
Từ khóa base, this
• Từ khóa base:
 Được sử dụng để tham chiếu đến lớp cơ sở từ lớp
dẫn xuất.
 Ví dụ: xét lớp cơ sở nhan_vien với khai báo như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
30HOCLAPTRINHWEB.COM
Từ khóa base, this
• Từ khóa base:
 Ví dụ: xét lớp dẫn xuất nv_van_phong với khai báo
như sau:
 Trong ví dụ trên, để tham chiếu đến phương thức khởi
tạo có tham số trong lớp cơ sở nhan_vien phải sử
dụng từ khóa base
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
31HOCLAPTRINHWEB.COM
Từ khóa base, this
• Từ khóa this:
 Được sử dụng để tham chiếu đến lớp hiện hành (lớp
chứa đoạn lệnh đang cài đặt).
 Ví dụ: xét lớp cơ sở nhan_vien với khai báo như sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
32HOCLAPTRINHWEB.COM
Tính đa hình của lớp (Polymorphism)
• Từ khóa base, this
• Ghi đè (overriding)
• Nạp chồng hàm (Overloading)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
33HOCLAPTRINHWEB.COM
Ghi đè (overriding)
• Khái niệm ghi đè (overriding) được dùng để
định nghĩa lại phương thức của lớp cơ sở
(lớp cha) trong lớp dẫn xuất (lớp con kế thừa)
• Các điểm cần lưu ý khi thực hiện ghi đè:
 Phương thức ở lớp cơ sở và lớp dẫn xuất phải có
cùng dạng hàm (signature) và kiểu dữ liệu trả về
 Phương thức lớp cơ sở phải được khai báo với từ
khóa virtual
 Phương thức lớp dẫn xuất phải được khai báo với từ
khóa override
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
34HOCLAPTRINHWEB.COM
Ghi đè (overriding)
• Khái niệm ghi đè (overriding) được dùng để
định nghĩa lại phương thức của lớp cơ sở
(lớp cha) trong lớp dẫn xuất (lớp con kế thừa)
• Các điểm cần lưu ý khi thực hiện ghi đè:
 Phương thức ở lớp cơ sở và lớp dẫn xuất phải có
cùng dạng hàm (signature) và kiểu dữ liệu trả về
 Phương thức lớp cơ sở phải được khai báo với từ
khóa virtual
 Phương thức lớp dẫn xuất phải được khai báo với từ
khóa override
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
35HOCLAPTRINHWEB.COM
Ghi đè (overriding)
• Ví dụ: xét lớp
cơ sở
nhan_vien
với khai báo:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
36HOCLAPTRINHWEB.COM
Ghi đè (overriding)
• Ví dụ: xét lớp dẫn xuất với khai báo:
 Với ví dụ trên, phương thức tinh_luong trong lớp dẫn xuất được ghi đè
lên phương thức tinh_luong trong lớp cơ sở
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
37HOCLAPTRINHWEB.COM
Ghi đè (overriding)
• Lưu ý:
 Các phương thức ghi đè phải trùng tên
 Không thể ghi đè các phương thức tĩnh (không có từ
khóa virtual)
 Phương thức, thuộc tính, chỉ mục, sự kiện đều có thể
được ghi đè bằng từ khóa virtual và override
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
38HOCLAPTRINHWEB.COM
Tính đa hình của lớp (Polymorphism)
• Từ khóa base, this
• Ghi đè (overriding)
• Nạp chồng hàm (Overloading)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
39HOCLAPTRINHWEB.COM
Nạp chồng hàm (Overloading)
• Cho phép khai báo các phương thức trùng
tên nhau nhưng có tham số khác nhau
• Các điểm cần lưu ý khi thực hiện nạp chồng
hàm:
 Tên của các phương thức phải trùng nhau
 Số lượng tham số phải khác nhau
 Kiểu dữ liệu của các tham số và thứ tự các tham số
phải khác nhau
• Ví dụ: xét lớp nhan_vien với khai báo sau:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
40HOCLAPTRINHWEB.COM
Nạp chồng hàm (Overloading)
Nạp chồng
hàm
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
41HOCLAPTRINHWEB.COM
Nạp chồng hàm (Overloading)
• Nhận xét:
 Trong lớp nhan_vien, có hai phương thức khởi tạo
trùng tên (cùng là nhan_vien) nhưng có số lượng
tham số khác nhau. Ta gọi hai phương thức khởi tạo
này được nạp chồng hàm (Overriding)
 Tất cả các phương thức trong C# đều có thể nạp
chồng hàm.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
42HOCLAPTRINHWEB.COM

More Related Content

PDF
Thiết kế csdl quản lý nhân sự
PPTX
He thong quan Ly _ Giang day va co van hoc tap
DOCX
Bảng tiêu chí đánh giá thuyết trình dự án kẽ vô hình
PDF
Hướng dẫn sử dụng Selenium ide
PDF
Bài 1 Tìm hiểu về Hệ Thống Quản Trị Nội Dung - CMS
DOC
Phân tích chiến lược kinh doanh công ty cổ phần kinh đô
PDF
Bài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPT
PPTX
slide powerpoint môn Marketing quảng cáo
Thiết kế csdl quản lý nhân sự
He thong quan Ly _ Giang day va co van hoc tap
Bảng tiêu chí đánh giá thuyết trình dự án kẽ vô hình
Hướng dẫn sử dụng Selenium ide
Bài 1 Tìm hiểu về Hệ Thống Quản Trị Nội Dung - CMS
Phân tích chiến lược kinh doanh công ty cổ phần kinh đô
Bài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPT
slide powerpoint môn Marketing quảng cáo

What's hot (20)

PPTX
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
PDF
CHỦ ĐỀ STEM VẬT LÝ 11. CHẾ TẠO MÔ HÌNH QUẠT GIÓ VỚI ĐỘNG CƠ ĐƠN GIẢN - ĐÈN NG...
PDF
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
PPT
C7.tra cong lao dong
PDF
Giáo trình phân tích thiết kế hệ thống thông tin
DOCX
THỰC TRẠNG PHÁT HÀNH CHỨNG KHOÁN Ở VIỆT NAM VÀ TÁC ĐỘNG CỦA VIỆC PHÁT HÀNH ĐẾ...
PPT
Kĩ năng làm việc nhóm chinh thuc
PDF
45 cau hoi on lich su dang
PDF
Ngôn ngữ R
PPTX
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
PPTX
Slide - Các phúc lợi cho người lao động
DOCX
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
PDF
Bài giảng bảo mật hệ thống thông tin
PDF
Ke hoach Marketing Benh vien
PPT
Báo cáo Đồ án tốt nghiệp
PPTX
Giới thiệu Đại học Tây Bắc [Slide]
PPTX
Môn quản trị nguồn nhân lực
PDF
Phan tich hệ thống thông tin bằng uml
PDF
300 Câu hỏi trắc nghiệm thi môn QUẢN TRỊ CHIẾN LƯỢC, CÓ ĐÁP ÁN!
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
CHỦ ĐỀ STEM VẬT LÝ 11. CHẾ TẠO MÔ HÌNH QUẠT GIÓ VỚI ĐỘNG CƠ ĐƠN GIẢN - ĐÈN NG...
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
C7.tra cong lao dong
Giáo trình phân tích thiết kế hệ thống thông tin
THỰC TRẠNG PHÁT HÀNH CHỨNG KHOÁN Ở VIỆT NAM VÀ TÁC ĐỘNG CỦA VIỆC PHÁT HÀNH ĐẾ...
Kĩ năng làm việc nhóm chinh thuc
45 cau hoi on lich su dang
Ngôn ngữ R
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide - Các phúc lợi cho người lao động
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
Bài giảng bảo mật hệ thống thông tin
Ke hoach Marketing Benh vien
Báo cáo Đồ án tốt nghiệp
Giới thiệu Đại học Tây Bắc [Slide]
Môn quản trị nguồn nhân lực
Phan tich hệ thống thông tin bằng uml
300 Câu hỏi trắc nghiệm thi môn QUẢN TRỊ CHIẾN LƯỢC, CÓ ĐÁP ÁN!
Ad

Viewers also liked (20)

PDF
Bài 9 - Serialization - Nền tảng lập trình ứng dụng với C#
PDF
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
PDF
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
DOCX
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
PDF
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
PDF
2 whats-new-in-ios7-m2-xcode-slides
PDF
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
PPT
Bài 3 - Điều khiển kiểm tra dữ liệu
PDF
J query khtn
PDF
Bài 3 - Cấu trúc điều khiển - Nền tảng lập trình ứng dụng với C#
PDF
Bài 4 Làm việc với báo cáo cơ bản - Giáo trình FPT
PDF
Bài 5 Làm việc với báo cáo nâng cao - Giáo trình FPT
PDF
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
PPT
Bài 6 - Quản lý ứng dụng web asp.net
PDF
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
PDF
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
PPT
Bài 5 - Web User Controls Asp.net
PDF
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPT
PDF
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
PDF
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 9 - Serialization - Nền tảng lập trình ứng dụng với C#
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
2 whats-new-in-ios7-m2-xcode-slides
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
Bài 3 - Điều khiển kiểm tra dữ liệu
J query khtn
Bài 3 - Cấu trúc điều khiển - Nền tảng lập trình ứng dụng với C#
Bài 4 Làm việc với báo cáo cơ bản - Giáo trình FPT
Bài 5 Làm việc với báo cáo nâng cao - Giáo trình FPT
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 6 - Quản lý ứng dụng web asp.net
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Bài 5 - Web User Controls Asp.net
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPT
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Ad

Similar to Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C# (20)

DOC
Chuong 5
PPTX
NET101 - Slide 5- Lap trinh-TK nhom dt.pptx
DOC
Chuong 6
PPTX
Lớp_Đối tượng...............................
PDF
Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#
PDF
Bai4classesobjectsnamespaces 130622090259-phpapp02
PDF
Bai06 mot sokythuattrongkethua
PDF
Oop unit 07 các kỹ thuật kế thừa
PDF
Chuong8 (2)
DOC
Chuong 3
PPT
Chuong9 lop vadoituong
DOCX
Lappj trình hướng đối tượng
PPTX
NET101 - Slide 4- Lap trinh- Lop va dt.pptx
PPTX
Bai 4- Lop va doi tuong- NET101 - Slide 4.pptx
PPT
Lesson09
DOC
Chuong 1
DOC
Chuong 4
PPT
Phương pháp lập trình hướng đối tượng với Java
PDF
bài giảng lập trình hướng đối tượng
PPTX
Class và object (lớp và đối tượng
Chuong 5
NET101 - Slide 5- Lap trinh-TK nhom dt.pptx
Chuong 6
Lớp_Đối tượng...............................
Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#
Bai4classesobjectsnamespaces 130622090259-phpapp02
Bai06 mot sokythuattrongkethua
Oop unit 07 các kỹ thuật kế thừa
Chuong8 (2)
Chuong 3
Chuong9 lop vadoituong
Lappj trình hướng đối tượng
NET101 - Slide 4- Lap trinh- Lop va dt.pptx
Bai 4- Lop va doi tuong- NET101 - Slide 4.pptx
Lesson09
Chuong 1
Chuong 4
Phương pháp lập trình hướng đối tượng với Java
bài giảng lập trình hướng đối tượng
Class và object (lớp và đối tượng

More from MasterCode.vn (20)

PDF
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
PDF
Why apps-succeed-wpr-mastercode.vn
PDF
Dzone performancemonitoring2016-mastercode.vn
PDF
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
PDF
Nghiên cứu về khách hàng mastercode.vn
PDF
Lập trình sáng tạo creative computing textbook mastercode.vn
PDF
Pd fbuoi7 8--tongquanseo-mastercode.vn
PDF
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
PDF
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
PDF
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
PDF
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
PDF
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
PDF
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
PDF
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
PDF
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
PDF
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
PDF
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
PDF
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
PDF
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
PDF
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...

Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#

  • 1. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 1HOCLAPTRINHWEB.COM
  • 2. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 2HOCLAPTRINHWEB.COM Bài 5: Tính thừa kế và Đa hình • Tính thừa kế (Inheritance) • Lớp trừu tượng (Abstract) • Lớp niêm phong (Sealed) • Tính đa hình của lớp (Polymorphism) - 8 tiết -
  • 3. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 3HOCLAPTRINHWEB.COM Tính thừa kế (Inheritance) • Khái niệm • Xây dựng lớp kế thừa
  • 4. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 4HOCLAPTRINHWEB.COM Khái niệm • Tính thừa kế là một khái niệm nền tảng cho phép tái sử dụng mã lệnh đang tồn tại và điều này giúp tiết kiệm được thời gian trong việc lập trình • Các class có thể thừa kế từ class khác. Class mới được gọi là class được dẫn xuất (hay còn gọi là class con) sẽ được quyền truy xuất đến tất cả các thành viên dữ liệu và các phương thức không được biểu thị private của class cơ sở (hay còn gọi là class cha)
  • 5. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 5HOCLAPTRINHWEB.COM Xây dựng lớp kế thừa • Cú pháp: Tên_class_con : Tên_class_cơ_sở • Ví dụ 1:  Xét class cơ sở với khai báo như sau:
  • 6. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 6HOCLAPTRINHWEB.COM Xây dựng lớp kế thừa • Ví dụ 1:  Xét class được dẫn xuất từ class cơ sở với khai báo như sau:
  • 7. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 7HOCLAPTRINHWEB.COM Xây dựng lớp kế thừa • Ví dụ 1:  Kết quả xuất ra màn hình khi thực thi ví dụ trên:
  • 8. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 8HOCLAPTRINHWEB.COM Xây dựng lớp kế thừa • Ví dụ 2:  Xét class cơ sở với khai báo như sau:
  • 9. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 9HOCLAPTRINHWEB.COM Xây dựng lớp kế thừa • Ví dụ 2:  Xét hai class được dẫn xuất từ class cơ sở với khai báo như sau:
  • 10. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 10HOCLAPTRINHWEB.COM Xây dựng lớp kế thừa • Ví dụ 2:  Đoạn lệnh khai báo và khởi tạo đối tượng như sau:
  • 11. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 11HOCLAPTRINHWEB.COM Xây dựng lớp kế thừa • Ví dụ 2:  Kết quả xuất ra màn hình khi thực thi đoạn lệnh trên:
  • 12. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 12HOCLAPTRINHWEB.COM Lớp trừu tượng (Abstract) • Khái niệm • Xây dựng lớp trừu tượng
  • 13. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 13HOCLAPTRINHWEB.COM Khái niệm • class trừu tượng thực chất là class cơ sở (base class) mà các class khác có thể được dẫn xuất từ nó. • Các class không phải là class trừu tượng (non-abstract class) được gọi là lớp cụ thể (concrete class) • class trừu tượng có thể có cả hai loại phương thức: phương thức trừu tượng và phương thức cụ thể. • Một kiểu được dẫn xuất từ một lớp cơ sở trừu tượng thừa kế tất cả các thành viên kiểu cơ sở bao gồm sự thực thi mọi phương thức
  • 14. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 14HOCLAPTRINHWEB.COM Khái niệm • Khi nào thì sử dụng class trừu tượng?  Nếu muốn tạo các class mà các class này sẽ chỉ là các class cơ sở, và không muốn bất cứ ai tạo các đối tượng của các kiểu class này.  Class trừu tượng thường được dùng để biểu thị rằng nó là class không đầy đủ và rằng nó được dự định sẽ chỉ được dùng như là một class cơ sở.
  • 15. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 15HOCLAPTRINHWEB.COM Xây dựng lớp trừu tượng • Cú pháp: <khai báo cấp độ truy xuất> abstract class tên_class { // Các thành viên của class trừu tượng. } • Ví dụ 1:  Xét class trừu tượng được khai báo như sau:
  • 16. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 16HOCLAPTRINHWEB.COM Xây dựng lớp trừu tượng
  • 17. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 17HOCLAPTRINHWEB.COM Xây dựng lớp trừu tượng • Ví dụ 1:  Kết quả được xuất ra màn hình:
  • 18. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 18HOCLAPTRINHWEB.COM Xây dựng lớp trừu tượng • Ví dụ 2:  Xét lớp trừu tượng và lớp dẫn xuất được khai báo như sau:
  • 19. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 19HOCLAPTRINHWEB.COM Xây dựng lớp trừu tượng • Ví dụ 2:  Xét đoạn lệnh khai báo và gọi thực thi như sau:
  • 20. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 20HOCLAPTRINHWEB.COM Xây dựng lớp trừu tượng • Ví dụ 2:  Kết quả xuất ra màn hình:
  • 21. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 21HOCLAPTRINHWEB.COM Xây dựng lớp trừu tượng • Chú ý:  Mục tiêu của một class trừu tượng là cung cấp định nghĩa chung của một class cơ sở mà nhiều class được dẫn xuất có thể chia sẻ.  Một thành viên abstract không thể là static  Không thể tạo một instance của class trừu tượng  Một class trừu tượng không thể được niêm phong (Sealed).  Một phương thức trừu tượng không thể là private .
  • 22. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 22HOCLAPTRINHWEB.COM Xây dựng lớp trừu tượng • Chú ý:  Từ khóa Override : hành động ghi đè (Overriding) là hành động sửa đổi hoặc thay thế sự cài đặt của class cha với một cài đặt mới. Các thành viên virtual hoặc abstract của class cha cho phép các class dẫn xuất ghi đè chúng.  Phương thức abstract thực chất là một phương thức virtual ngầm định.
  • 23. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 23HOCLAPTRINHWEB.COM Lớp niêm phong (Sealed) • Khái niệm • Xây dựng lớp niêm phong
  • 24. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 24HOCLAPTRINHWEB.COM Khái niệm • Từ khóa sealed được sử dụng để biểu thị khi khai báo một class nhằm ngăn ngừa sự dẫn xuất từ một class, điều này cũng giống như việc ngăn cấm một class nào đó có class con. • Một class sealed cũng không thể là một class trừu tượng. • Các structs trong C# được ngầm định sealed. Do vậy, chúng không thể được thừa kế.
  • 25. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 25HOCLAPTRINHWEB.COM Xây dựng lớp niêm phong • Cú pháp: <khai báo cấp độ truy xuất> sealed class tên_class { // Các thành viên của class trừu tượng. } • Ví dụ:  Xét class niêm phong được khai báo như sau:
  • 26. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 26HOCLAPTRINHWEB.COM Xây dựng lớp niêm phong
  • 27. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 27HOCLAPTRINHWEB.COM Xây dựng lớp niêm phong • Ví dụ:  Kết quả xuất ra màn hình:
  • 28. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 28HOCLAPTRINHWEB.COM Tính đa hình của lớp (Polymorphism) • Từ khóa base, this • Ghi đè (overriding) • Nạp chồng hàm (Overloading)
  • 29. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 29HOCLAPTRINHWEB.COM Từ khóa base, this • Từ khóa base:  Được sử dụng để tham chiếu đến lớp cơ sở từ lớp dẫn xuất.  Ví dụ: xét lớp cơ sở nhan_vien với khai báo như sau:
  • 30. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 30HOCLAPTRINHWEB.COM Từ khóa base, this • Từ khóa base:  Ví dụ: xét lớp dẫn xuất nv_van_phong với khai báo như sau:  Trong ví dụ trên, để tham chiếu đến phương thức khởi tạo có tham số trong lớp cơ sở nhan_vien phải sử dụng từ khóa base
  • 31. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 31HOCLAPTRINHWEB.COM Từ khóa base, this • Từ khóa this:  Được sử dụng để tham chiếu đến lớp hiện hành (lớp chứa đoạn lệnh đang cài đặt).  Ví dụ: xét lớp cơ sở nhan_vien với khai báo như sau:
  • 32. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 32HOCLAPTRINHWEB.COM Tính đa hình của lớp (Polymorphism) • Từ khóa base, this • Ghi đè (overriding) • Nạp chồng hàm (Overloading)
  • 33. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 33HOCLAPTRINHWEB.COM Ghi đè (overriding) • Khái niệm ghi đè (overriding) được dùng để định nghĩa lại phương thức của lớp cơ sở (lớp cha) trong lớp dẫn xuất (lớp con kế thừa) • Các điểm cần lưu ý khi thực hiện ghi đè:  Phương thức ở lớp cơ sở và lớp dẫn xuất phải có cùng dạng hàm (signature) và kiểu dữ liệu trả về  Phương thức lớp cơ sở phải được khai báo với từ khóa virtual  Phương thức lớp dẫn xuất phải được khai báo với từ khóa override
  • 34. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 34HOCLAPTRINHWEB.COM Ghi đè (overriding) • Khái niệm ghi đè (overriding) được dùng để định nghĩa lại phương thức của lớp cơ sở (lớp cha) trong lớp dẫn xuất (lớp con kế thừa) • Các điểm cần lưu ý khi thực hiện ghi đè:  Phương thức ở lớp cơ sở và lớp dẫn xuất phải có cùng dạng hàm (signature) và kiểu dữ liệu trả về  Phương thức lớp cơ sở phải được khai báo với từ khóa virtual  Phương thức lớp dẫn xuất phải được khai báo với từ khóa override
  • 35. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 35HOCLAPTRINHWEB.COM Ghi đè (overriding) • Ví dụ: xét lớp cơ sở nhan_vien với khai báo:
  • 36. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 36HOCLAPTRINHWEB.COM Ghi đè (overriding) • Ví dụ: xét lớp dẫn xuất với khai báo:  Với ví dụ trên, phương thức tinh_luong trong lớp dẫn xuất được ghi đè lên phương thức tinh_luong trong lớp cơ sở
  • 37. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 37HOCLAPTRINHWEB.COM Ghi đè (overriding) • Lưu ý:  Các phương thức ghi đè phải trùng tên  Không thể ghi đè các phương thức tĩnh (không có từ khóa virtual)  Phương thức, thuộc tính, chỉ mục, sự kiện đều có thể được ghi đè bằng từ khóa virtual và override
  • 38. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 38HOCLAPTRINHWEB.COM Tính đa hình của lớp (Polymorphism) • Từ khóa base, this • Ghi đè (overriding) • Nạp chồng hàm (Overloading)
  • 39. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 39HOCLAPTRINHWEB.COM Nạp chồng hàm (Overloading) • Cho phép khai báo các phương thức trùng tên nhau nhưng có tham số khác nhau • Các điểm cần lưu ý khi thực hiện nạp chồng hàm:  Tên của các phương thức phải trùng nhau  Số lượng tham số phải khác nhau  Kiểu dữ liệu của các tham số và thứ tự các tham số phải khác nhau • Ví dụ: xét lớp nhan_vien với khai báo sau:
  • 40. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 40HOCLAPTRINHWEB.COM Nạp chồng hàm (Overloading) Nạp chồng hàm
  • 41. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 41HOCLAPTRINHWEB.COM Nạp chồng hàm (Overloading) • Nhận xét:  Trong lớp nhan_vien, có hai phương thức khởi tạo trùng tên (cùng là nhan_vien) nhưng có số lượng tham số khác nhau. Ta gọi hai phương thức khởi tạo này được nạp chồng hàm (Overriding)  Tất cả các phương thức trong C# đều có thể nạp chồng hàm.
  • 42. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 42HOCLAPTRINHWEB.COM