S k th a ế
4.1 M đu
-S k th a là m t ế đc đi m c a ngôn ng dùng đ bi u
di n m i quan h đc bi t gi a các l p. Các l p đưc tr u
tưng hóa và t ch c thành m t s ơ đ phân c p l p.
-K th a là m t cế ơ ch tr u tế ư ng hóa. Th t c và hàm là c ơ
ch tr u tế ư ng hóa cho gi i thu t, record và struct là tr u
tưng hóa cho d li u. Khái ni m l p trong C++, k t h p ế
d li u và th t c đ đưc ki u d li u tr u t ư ng v i giao
di n đc l p v i cài đt và cho ng ư i s d ng c m giác
tho i mái nh ư ki u d li u có s n
-S k th a là m t m c cao h ế ơn c a tr u t ư ng hóa, cung
c p m t c ơ ch gom chung các l p có liên quan v i nhau ế
thành m t m c khái quát hóa đc tr ưng cho toàn b các l p
nói trên. Các l p v i các đc đi m t ương t nhau có th
đưc t ch c thành m t s ơ đ phân c p k th a. L p trên ế
cùng là tr u t ư ng hóa c a toàn b các l p bên d ư i nó.
M đu
Quan h “là 1”: K th a ế đưc s d ng thông d ng nh t đ
bi u di n quan h “là 1”.
M t sinh viên là m t ng ư i
M t hình tròn là m t hình ellipse
M t tam giác là m t đa giác
K th a t o kh nế ăng xây d ng l p m i t l p đã có, trong
đó hàm thành ph n đưc th a h ư ng t l p cha. Trong C++,
k th a còn ế đnh nghĩa s t ương thích, nh đó ta có cơ ch ế
chuy n ki u t đng.
K th a v a có kh nế ăng t o c ơ ch khái quát hoá v a có ế
kh năng chuyên bi t hoá.
K th a cho phép t ch c các l p chia s mã chế ương trình
chung nh v y có th d dàng s a ch a, nâng c p h
th ng.
M đu
K th a thế ư ng đưc dùng theo hai cách:
Đ ph n ánh m i quan h gi a các l p. Là công c đ t
ch c và phân c p l p d a vào s chuyên bi t hóa, trong
đó m t vài hàm thành ph n c a l p con là phiên b n hoàn
thi n ho c đc bi t hoá c a phiên b n l p cha. Trong
C++ m i quan h này th ư ng đưc cài đt s d ng:
K th a public.ế
Hàm thành ph n là ph ương th c o
Đ ph n ánh s chia s mã ch ương trình gi a các l p
không có quan h v m t ng nghĩa nh ưng có th có t
ch c d li u và mã ch ương trình tương t nhau. Trong
C++, cơ ch chia s mã này thế ư ng đưc cài đt dùng:
K th a private.ế
Hàm thành ph n không là ph ương th c o.
4.2 K th a ế đơn
K th a có th ế đưc th c hi n đ th hi n m i
quan h 'là m t'.
Xét hai khái ni m ngưi và sinh viên v i m i quan
h t nhiên: m t 'sinh viên' là m t 'ngưi'. Trong C+
+, ta có th bi u di n khái ni m trên, m t sinh viên
là m t ng ư i có thêm m t s thông tin và m t s
thao tác (riêng bi t c a sinh viên).
Ta t ch c l p sinh viên k th a t l p ng ế ư i. L p
ngưi đưc g i là l p cha (superclass) hay l p c ơ
s (base class). L p sinh viên đưc g i là l p con
(subclass) hay l p d n xu t (derived class).