Mô tả:
Chương 4: Thừa kế và đa
hình
Nội dung chương 4
1. Đặc biệt hóa và tổng quát hóa
2. Sự kế thừa
3. Đa hình
4. Lớp trừu tượng
5. Lớp cô lập ( sealed class)
6. Lớp Object
1. Đặc biệt hóa và sự tổng
quát hóa
1. Đặc biệt hóa và tổng quát hóa
Trong thế giới thực, ta có thể hiểu kế thừa như sau:
Con
Cha
1. Đặc biệt hóa và tổng quát hóa
Trong lập trình hướng đối tượng, Kế thừa
thường được dùng theo 2 cách:
Để phản ánh mối quan hệ giữa các lớp.
Để phản ánh sự chia sẻ mã chương trình
giữa các lớp.
1. Đặc biệt hóa và tổng quát hóa
Phân tích thiết kế hướng đối tượng:
Bước đầu tiên khi phân tích một hệ thống gồm
các lớp đối tượng, ta xác định xem:
Có các lớp đối tượng nào ?
Chúng có các thuộc tính gì ?
Chúng có quan hệ như thế nào ?
1. Đặc biệt hóa và tổng quát hóa
Có các lớp đối tượng nào ?
Ví dụ:
• Với bài toán tính toán trên phân số, có thể xác định
lớp đối tượng sẽ tạo ra là lớp phân số
• Bài toán quản lý nhân sự: cần có lớp đối tượng nhân
viên, phòng ban, ….
• Muốn quản lý học sinh phải xây dựng lớp học sinh, …
1. Đặc biệt hóa và tổng quát hóa
Chúng có các thuộc tính gì ?
Ví dụ:
• Lớp phân số:
Phanso
+ Tuso
+ Mauso
+ Phanso()
+ NhapPS()
+ XuatPS()
+ CongPS()
+ …………
Tên lớp
Các thuộc tính
Các phương thức
1. Đặc biệt hóa và tổng quát hóa
Ví dụ:
• Lớp tam giác:
Nhanvien
+ Maso
+ Hoten
+ Chucvu
+ nhap()
+ xuat()
+ …………
Phongban
+ Maso
+ Diachi
+ nhap()
+ xuat()
+ …………
Tên lớp
Các thuộc tính
Các phương thức
Tên lớp
Các thuộc tính
Các phương thức
1. Đặc biệt hóa và tổng quát hóa
Ví dụ:
• Lớp học sinh: tùy thuộc vào yêu cầu bài toán, với
trường học quản lý quá trình học tập
HocSinh
+ MaSo
+ HoTen
+ MonHoc
+ Diem
…….
+ Nhap()
+ Xuat()
+ TinhDTB
+ …………
Tên lớp
Các thuộc tính
Các phương thức
1. Đặc biệt hóa và tổng quát hóa
Ví dụ:
• Lớp học sinh: tùy thuộc vào yêu cầu bài toán, với
trường học quản lý tình trạng sức khỏe
HocSinh
+ MaSo
+ HoTen
+ ChieuCao
+ CanNang
+ …….
+ Nhap()
+ Xuat()
+ ChanDoanSK
+ …………
Tên lớp
Các thuộc tính
Các phương thức
1. Đặc biệt hóa và tổng quát hóa
Chúng có quan hệ thế nào?
Quan hệ chứa - Aggregation
• Một đối tượng có thể là thuộc tính của một đối tượng
khác
• Số lượng đối tượng chứa trong đối tượng khác được
ràng buộc:
• 1 có đúng một đối tượng tham gia
• m..n có từ m đến n
• 1..* có một hoặc nhiều
• 0..1 có một hoặc không
1. Đặc biệt hóa và tổng quát hóa
Ví dụ: quan hệ giữa nhân viên với phòng ban
• Một phòng ban gồm nhiều nhân viên
• Một phòng ban có số lượng nhân viên được giới hạn
Phongban
+ Maso
+ Diachi
+ nhap()
+ Xuat()
+ …………
Nhanvien
1
1.. *
+ Maso
+ Hoten
+ Chucvu
+ nhap()
+xuat()
+ …………
1. Đặc biệt hóa và tổng quát hóa
Quan hệ là một - inheritance
Trong hướng đối tượng, Sự kế thừa thường được
biểu diễn bởi quan hệ “là một”.
Chó “là một” loại động vật
Gà “là một” loại động vật
1. Đặc biệt hóa và tổng quát hóa
Có chân
Có mắt
Có đuôi
Biết chạy
Biết ngủ
Biết sủa
Biết vẫy đuôi
Mã lệnh bị trùng
Mã lệnh bị trùng
Có chân
Có mắt
Có cánh
Biết chạy
Biết ngủ
Biết bay
Biết vẫy cánh
1. Đặc biệt hóa và tổng quát hóa
Lớp động vật
Có chân
Có mắt
Biết chạy
Biết ngủ
Có đuôi
Có cánh
Biết sủa
Biết vẫy đuôi
Biết bay
Biết vẫy cánh
1. Đặc biệt hóa và tổng quát hóa
Có thêm đặc
điểm riêng là
có đuôi, biết
Chó và gà là sủa, biết vẫy
trường hợp đuôi.
đặc biệt của Có thêm đặc
lớp động vật điểm riêng là
có cánh, biết
bay, biết vẫy
cánh.
Lớp động vật là sự tổng quát hóa của lớp gà và lớp chó
1. Đặc biệt hóa và tổng quát hóa
Ví dụ: sơ đồ phân cấp biểu diễn mối quan hệ chó, gà
và động vật
Động vật
Có chân
Có mắt
Biết chạy
Biết ngủ
Chó
Gà
Có đuôi
Có cánh
Biết sủa
Biết vẫy đuôi
Biết bay
Biết vẫy cánh
1. Đặc biệt hóa và tổng quát hóa
Bài tập:
1. Vẽ sơ đồ cây phân cấp biễu diễn khái niệm hình elip
và hình tròn.
2. Vẽ sơ đồ cây phân cấp biểu diễn khái niệm nhân
viên quản lý, nhân viên công nhật. Biết:
Nhân viên quản lý: Mã nhân viên, họ tên, hệ số
lương, ngày vào làm, số ngày công , chức vụ, tiền
trách nhiệm.
Nhân viên công nhật: Mã nhân viên, họ tên, hệ số
lương, ngày vào làm, số ngày công.
1. Đặc biệt hóa và tổng quát hóa
3. Phân tích và vẽ cây phân cấp thừa kế cho các đối
tượng trong một học viện:
Nhân viên quản lý
Nhân viên nghiên cứu
Nhân viên phục vụ
- Xem thêm -