Bài giảng Phương pháp lập trình hướng đối tượng - Chương 6: Kế thừa - Nguyễn Minh Huy
Kꢀ thꢁa
GV. Nguyꢀn Minh Huy
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
1
Nꢆi dung
ꢀ Khái niꢇm kꢈ thꢉa.
ꢀ Tꢊm vꢋc trong kꢈ thꢉa.
ꢀ Đꢌnh nghĩa lꢍi phương thꢎc.
ꢀ Quan hꢇ ISꢅA và HASꢅA.
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
2
Nꢆi dung
ꢀ Khái niꢂm kꢀ thꢁa.
ꢀ Tꢊm vꢋc trong kꢈ thꢉa.
ꢀ Đꢌnh nghĩa lꢍi phương thꢎc.
ꢀ Quan hꢇ ISꢅA và HASꢅA.
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
3
Khái niꢇm kꢈ thꢉa
ꢀ Vꢏn đꢐ trùng lꢑp thông tin:
ꢀ Xét nhiꢐu lꢂp có thông tin trùng nhau.
ꢀ Có 2 dꢍng:
A
B
x, y, z
u, v, w
ꢁ Dꢍng chia sꢒ: A ∩ B ≠ Ø.
x, y, z
ꢁ Dꢍng mꢓ rꢆng: B = A + ε.
a, b, c
ꢀ Nhưꢄc điꢔm:
A
B
x, y, z
a, b, c
ꢁ Tꢃn thꢕi gian, công sꢎc.
x, y, z
ꢁ Dung lưꢄng lưu trꢖ lꢂn.
ꢁ Thay đꢗi phꢊn chung khó khăn.
Giꢃi quyꢀt: tái sꢄ dꢅng!!
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
4
Khái niꢇm kꢈ thꢉa
ꢀ Khái niꢇm kꢈ thꢉa:
ꢀ Đꢌnh nghĩa lꢂp mꢂi dꢋa trên nhꢖng lꢂp đã có.
ꢀ Lꢆp kꢀ thꢁa: lꢂp đưꢄc đꢌnh nghĩa tꢉ lꢂp đã có.
ꢀ Lꢆp cơ sꢇ: lꢂp dùng đꢔ đꢌnh nghĩa lꢂp mꢂi.
ꢀ Lꢂp kꢈ thꢉa thꢉa hưꢓng TꢈT Cꢉ tꢉ lꢂp cơ sꢓ.
O
A
x, y, z
x, y, z
A
x, y, z
a, b, c
B
x, y, z
u, v, w
B
x, y, z
a, b, c
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
5
Khái niꢇm kꢈ thꢉa
ꢀ Khai báo trong C++:
class <Lꢆp kꢀ thꢁa> : <Loꢀi kꢁ thꢂa> <Lꢆp cơ sꢇ>
ꢀ Loꢍi kꢈ thꢉa:
ꢀ public, private, protected.
ꢀ Ví dꢘ:
class A : public O
{
private:
// Khai báo thuꢆc tính mꢂi cꢙa A.
public:
// Khai báo phương thꢎc mꢂi cꢙa A.
};
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
6
Khái niꢇm kꢈ thꢉa
ꢀ Ví dꢘ:
ꢀ Thông tin:
ꢀ Hꢚ tên.
ꢀ Thông tin:
ꢀ Hꢚ tên.
ꢀ Mꢎc lương.
ꢀ Sꢃ ngày nghꢛ.
ꢀ Công viꢇc:
ꢀ Mꢎc lương.
ꢀ Sꢃ ngày nghꢛ.
ꢀ Lꢆp chꢊ nhiꢂm.
GVCN
ꢀ Công viꢇc:
ꢀ Giꢜng dꢍy.
Giáo viên
ꢀ Tính lương.
ꢀ Giꢜng dꢍy.
ꢀ Tính lương.
ꢀ Sinh hoꢋt chꢊ nhiꢂm.
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
7
Khái niꢇm kꢈ thꢉa
Lꢆp kꢀ thꢁa
Lꢆp cơ sꢇ
ꢀ Ví dꢘ:
class GVCN : public GiaoVien
class GiaoVien
{
{
private:
private:
char
public:
GVCN(char *hoTen,
float mucLuong,
*m_lopCN;
char
float
int
*m_hoTen;
m_mucLuong;
m_ngayNghi;
public:
int ngayNghi,
char *lopCN);
void sinhHoatCN();
GiaoVien(char *hoTen,
float mucLuong,
int ngayNghi);
};
void giangDay();
float tinhLuong();
};
GVCN thꢁa hưꢇng TꢈT Cꢉ
thuꢌc tính và phương thꢍc
cꢊa GiaoVien
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
8
Khái niꢇm kꢈ thꢉa
ꢀ Ví dꢘ:
void main()
{
GiaoVien gv1(“Minh”, 500000, 5);
gv1.giangDay();
float luong1 = gv1.tinhLuong();
GVCN gv2(“Hanh”, 700000, 3, “10A5”);
gv2.giangDay();
gv2.sinhHoatCN();
float luong2 = gv2.tinhLuong();
}
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
9
Nꢆi dung
ꢀ Khái niꢇm kꢈ thꢉa.
ꢀ Tꢎm vꢏc trong kꢀ thꢁa.
ꢀ Đꢌnh nghĩa lꢍi phương thꢎc.
ꢀ Quan hꢇ ISꢅA và HASꢅA.
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
10
Tꢊm vꢋc trong kꢈ thꢉa
ꢀ Xét lꢂp A kꢈ thꢉa lꢂp O:
ꢀ A kꢈ thꢉa toàn bꢆ thuꢆc tính và phương thꢎc cꢙa O.
ꢀ Tꢊm vꢋc cꢙa nhꢖng thành phꢊn này thꢈ nào?
Lꢆp O
Lꢆp A
private:
???:
m_iX
???:
m_iY
???:
m_iZ
m_iX
Kꢈ thꢉa
protected:
m_iY
public:
m_iZ
ꢂ Do loꢋi kꢀ thꢁa quyꢀt đꢐnh!!
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
11
Tꢊm vꢋc trong kꢈ thꢉa
ꢀ Bꢜng tꢊm vꢋc trong kꢈ thꢉa:
Kꢀ thꢁa
public
Kꢀ thꢁa
protected
Kꢀ thꢁa
private
Tꢎm vꢏc
public
public
protected
protected
private
private
protected
private
protected
Không thꢀ Không thꢀ Không thꢀ
truy xuꢁt truy xuꢁt truy xuꢁt
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
12
Nꢆi dung
ꢀ Khái niꢇm kꢈ thꢉa.
ꢀ Tꢊm vꢋc trong kꢈ thꢉa.
ꢀ Đꢐnh nghĩa lꢋi phương thꢍc.
ꢀ Quan hꢇ ISꢅA và HASꢅA.
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
13
Đꢌnh nghĩa lꢍi phương thꢎc
ꢀ Kꢈ thꢉa mꢆt phꢊn:
ꢀ Có thꢔ thay đꢗi nhꢖng phꢊn đã kꢈ thꢉa??
ꢀ Không kꢈ thꢉa “máy móc” tꢏt cꢜ.
ꢀ Lꢆp kꢀ thꢁa có thꢑ thay đꢒi nhꢓng gì đã kꢀ thꢁa!!
ꢂ Đꢐnh nghĩa lꢋi phương thꢍc đã kꢀ thꢁa.
Lꢆp kꢀ thꢁa thꢁa hưꢇng TꢈT Cꢉ thuꢌc tính và
phương thꢍc cꢊa lꢆp cơ sꢇ TRꢔ nhꢓng
phương thꢍc đưꢕc đꢐnh nghĩa lꢋi!!
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
14
Đꢌnh nghĩa lꢍi phương thꢎc
ꢀ Ví dꢘ:
ꢀ GVCN kꢈ thꢉa tꢉ GiaoVien.
ꢀ GVCN tính lương khác GiaoVien.
ꢁ Lương GV = Mꢎc lương – Sꢃ ngày nghꢛ * 100,000.
ꢁ Lương GVCN = Lương GV + Phꢘ cꢏp 1,000,000.
ꢂ Viꢀt lꢋi phương thꢍc tinhLuong() cho lꢆp GVCN.
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
15
Đꢌnh nghĩa lꢍi phương thꢎc
ꢀ Ví dꢘ:
class GiaoVien
{
private:
char
float
int
*m_hoTen;
m_mucLuong;
m_ngayNghi;
public:
GiaoVien(char *hoTen, float mucLuong, int ngayNghi);
void giangDay();
float tinhLuong()
{
return m_mucLuong – m_ngayNghi * 100000;
}
};
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
16
Đꢌnh nghĩa lꢍi phương thꢎc
ꢀ Ví dꢘ:
void main()
{
class GVCN : public GiaoVien
{
GiaoVien gv1(“Minh”, 500000, 5);
private:
gv1.giangDay();
float luong1 = gv1.tinhLuong();
char
public:
GVCN(char *hoTen,
float mucLuong,
*m_lopCN;
GVCN gv2(“Hanh”, 700000, 3);
gv2.giangDay();
float luong2 = gv2.tinhLuong();
int ngayNghi,
char *lopCN);
}
void sinhHoatCN();
float tinhLuong()
{
return GiaoVien::tinhLuong() + 1000000;
}
};
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
17
Nꢆi dung
ꢀ Khái niꢇm kꢈ thꢉa.
ꢀ Tꢊm vꢋc trong kꢈ thꢉa.
ꢀ Đꢌnh nghĩa lꢍi phương thꢎc.
ꢀ Quan hꢂ ISꢖA và HASꢖA.
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
18
Quan hꢇ ISꢅA và HASꢅA
ꢀ Quan hꢇ ISꢅA:
ꢀ Lꢂp A quan hꢇ ISꢅA vꢂi lꢂp B
ꢁ A là mꢆt trưꢕng hꢄp đꢝc biꢇt cꢙa B.
ꢁ A cùng loꢍi vꢂi B.
ꢀ Ví dꢘ:
ꢀ GVCN là mꢆt GiaoVien đꢝc biꢇt.
ꢀ HinhVuong là mꢆt HinhChuNhat đꢝc biꢇt.
ꢀ ConMeo là mꢆt ConVat đꢝc biꢇt.
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
19
Quan hꢇ ISꢅA và HASꢅA
ꢀ Quan hꢇ HASꢅA:
ꢀ Lꢂp A quan hꢇ HASꢅA vꢂi lꢂp B
ꢁ A bao hàm B.
ꢁ A chꢎa B.
ꢁ B là mꢆt bꢆ phꢁn cꢙa A.
ꢀ Ví dꢘ:
ꢀ ChiecXe chꢎa BanhXe.
ꢀ QuyenSach chꢎa TrangSach.
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phương pháp lập trình hướng đối tượng - Chương 6: Kế thừa - Nguyễn Minh Huy", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_phuong_phap_lap_trinh_huong_doi_tuong_chuong_6_ke.pdf

