Lập trình hướng đối tượng tren C/C++ - OOP 07 inheritance - Pdf 95

KếKế
thừathừa
GV. GV. NguyễnNguyễn Minh Minh HuyHuy
KếKế
thừathừa
1Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
 KháiKhái niệmniệm kếkế thừathừa
 TầmTầm vựcvực trongtrong kếkế thừathừa
 ĐịnhĐịnh nghĩanghĩa lạilại phươngphương thứcthức
 QuanQuan hệhệ ISIS A A vàvà HASHAS A.A.
2Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
 KháiKhái niệmniệm kếkế thừathừa
 TầmTầm vựcvực trongtrong kếkế thừathừa
 ĐịnhĐịnh nghĩanghĩa lạilại phươngphương thứcthức
 QuanQuan hệhệ ISIS A A vàvà HASHAS A.A.
3Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
KháiKhái niệmniệm kếkế thừathừa
 VấnVấn đềđề trùngtrùng lấplấp thôngthông tin:tin:

XétXét nhiềunhiều lớplớp cócó thôngthông tin tin trùngtrùng nhaunhau
 CóCó 2 2 dạngdạng::
 DạngDạng chiachia sẻsẻ: A ∩ B ≠ Ø.: A ∩ B ≠ Ø.
 DạngDạng mởmở rộngrộng: B = A + : B = A + εε
NhượcNhược
điểmđiểm
::
A
x, y, z
a, b, c

u, v, w
B
x, y, z
a, b, c
O
x, y, z
A
x, y, z
KháiKhái niệmniệm kếkế thừathừa
 KhaiKhai báobáo trongtrong C++:C++:
class <class <LớpLớp kếkế thừathừa> : <> : <LoạiLoại kếkế thừathừa> <> <LớpLớp cơcơ sởsở>>
 LoạiLoại kếkế thừathừa::

public, private, protected.public, private, protected.

VíVí
dụdụ
::

VíVí
dụdụ
::
class class AA : public : public OO
{{
private:private:
// // KhaiKhai báobáo thuộcthuộc tínhtính mớimới củacủa A.A.
public:public:
// // KhaiKhai báobáo phươngphương thứcthức mớimới củacủa A.A.
};};
6Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy

 VíVí dụdụ::
class class GiaoVienGiaoVien
{{
private:private:
charchar **m_hoTenm_hoTen;;
floatfloat m_mucLuongm_mucLuong;;
intint m_ngayNghim_ngayNghi;;
public:public:
class class GVCNGVCN : public : public GiaoVienGiaoVien
{{
private:private:
charchar **m_lopCNm_lopCN;;
public:public:
GVCN(char *GVCN(char *hoTenhoTen,,
float float
mucLuongmucLuong
,,
Lớp kế thừa Lớp cơ sở
public:public:
GiaoVienGiaoVien(char *(char *hoTenhoTen,,
float float mucLuongmucLuong,,
intint ngayNghingayNghi););
void void giangDaygiangDay();();
float float tinhLuongtinhLuong();();
};};
8Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
float float
mucLuongmucLuong
,,
intint ngayNghingayNghi,,

TầmTầm vựcvực trongtrong kếkế thừathừa
 XétXét lớplớp A A kếkế thừathừa lớplớp O:O:

A A kếkế thừathừa toàntoàn bộbộ thuộcthuộc tínhtính vàvà phươngphương thứcthức củacủa O.O.
 TầmTầm vựcvực củacủa nhữngnhững thànhthành phầnphần nàynày thếthế nàonào??
Lớp A Lớp B




 Do Do loạiloại kếkế thừathừa quyếtquyết địnhđịnh!!!!
11Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
private:
m_iX
protected:
m_iY
public:
m_iZ
???:
m_iX
???:
m_iY
???:
m_iZ
Kế thừa
TầmTầm vựcvực trongtrong kếkế thừathừa
 BảngBảng tầmtầm vựcvực trongtrong kếkế thừathừa::
TầmTầm vựcvực
Kế thừa Kế thừa
publicpublic

 ĐịnhĐịnh nghĩanghĩa lạilại phươngphương thứcthức đãđã kếkế thừathừa
14Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
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!!
ĐịnhĐịnh nghĩanghĩa lạilại phươngphương thứcthức
 VíVí dụdụ::

GVCN GVCN kếkế thừathừa từtừ GiaoVienGiaoVien
 GVCN GVCN tínhtính lươnglương kháckhác GiaoVienGiaoVien
 LươngLương GV = GV = MứcMức lươnglương –– SốSố ngàyngày nghỉnghỉ * 10000.* 10000.
 LươngLương GVCN = GVCN = LươngLương GV + GV + PhụPhụ cấpcấp 100000.100000.





ViếtViết
lạilại
phươngphương
thứcthức
tinhLuongtinhLuong
() ()
chocho
lớplớp
GVCN.GVCN.




ĐịnhĐịnh nghĩanghĩa lạilại phươngphương thứcthức
 VíVí dụdụ::
class class GVCNGVCN : public : public GiaoVienGiaoVien
{{
private:private:
charchar **m_lopCNm_lopCN;;
public:public:
GVCN(char *GVCN(char *hoTenhoTen,,
float float
mucLuongmucLuong
,,
void void mainmain()()
{{
GiaoVienGiaoVien gv1(“Minh”, 500000, 5gv1(“Minh”, 500000, 5););
gv1.giangDay();gv1.giangDay();
float luong1 float luong1 = gv1.tinhLuong= gv1.tinhLuong();();
GVCN GVCN
gv2(“gv2(“
HanhHanh
”, 700000, 3”, 700000, 3
););
float float
mucLuongmucLuong
,,
intint ngayNghingayNghi,,
char *char *lopCNlopCN););
void void sinhHoatCNsinhHoatCN();();
float float tinhLuongtinhLuong()()
{{
return return GiaoVienGiaoVien::::TinhLuongTinhLuong() + 100000;() + 100000;


LớpLớp A A quanquan hệhệ HASHAS A A vớivới lớplớp BB
 A A baobao hàmhàm B.B.
 A A chứachứa B.B.
 B B làlà mộtmột bộbộ phậnphận củacủa A.A.
VíVí
dụdụ
::

VíVí
dụdụ
::
 ChiecXeChiecXe chứachứa BanhXeBanhXe
 QuyenSachQuyenSach chứachứa TrangSachTrangSach
20Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
QuanQuan hệhệ ISIS A A vàvà HASHAS AA
 Dr. Guru Dr. Guru khuyênkhuyên: : luậtluật xâyxây dựngdựng lớplớp

A A cócó quanquan hệhệ ISIS A A vớivới B.B.




 Cho A Cho A kếkế thừathừa B.B.
 A A cócó quanquan hệhệ HASHAS A A vớivới B.B.




 Cho B Cho B làlà mộtmột thuộcthuộc tínhtính củacủa A.A.

tùytùy
theotheo
loạiloại
kếkế
thừathừa

 ĐịnhĐịnh nghĩanghĩa lạilại phươngphương thứcthức::

““CảiCải biênbiên” ” nhữngnhững phươngphương thứcthức kếkế thừathừa
 QuanQuan hệhệ ISIS A A vàvà HASHAS A:A:

ISIS A: A A: A làlà trườngtrường hợphợp đặcđặc biệtbiệt củacủa B.B.
 HASHAS A: A A: A baobao hàmhàm B.B.
22Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
 BàiBài tậptập 7.17.1::
NhữngNhững cặpcặp đốiđối tượngtượng sausau cócó quanquan hệhệ ISIS A hay HASA hay HAS A?A?
KhaiKhai báobáo lớplớp chocho từngtừng cặpcặp thểthể hiệnhiện quanquan hệhệ giữagiữa chúngchúng
HìnhHình vuôngvuông / / HìnhHình chữchữ nhậtnhật
ĐaĐa giácgiác / / CạnhCạnh

GiámGiám
đốcđốc
/ /
NhânNhân
viênviênGiámGiám
đốcđốc

BàiBài tậptập
 BàiBài tậptập 7.2:7.2:
DựaDựa trêntrên lớplớp TaiKhoanTaiKhoan, , xâyxây dựngdựng lớplớp TaiKhoanTietKiemTaiKhoanTietKiem nhưnhư sausau::
CóCó thêmthêm thôngthông tin:tin:
 KỳKỳ hạnhạn gửigửi
 LãiLãi suấtsuất
 SốSố thángtháng đãđã gửigửi
KhiKhi nạpnạp tiềntiền, , sốsố thángtháng đãđã gửigửi đượcđược tínhtính lạilại từtừ đầuđầu
ChỉChỉ đượcđược rútrút tiềntiền khikhi đếnđến kỳkỳ hạnhạn
Cho Cho phépphép tăngtăng sốsố thángtháng đãđã gửigửi
TínhTính sốsố dưdư tạitại thờithời điểmđiểm hiệnhiện tạitại
25Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status