Đề Cương ôn tập Môn: Lập trình hướng đối tượng | Trường Đại học CÔNG NGHỆ THÔNG TIN, ĐHQG-TPHCM
Một định nghĩa trừu tượng hơn về kế thừa: là một đặc điểm của ngôn ngữ hướng đối tượng dùng để biểu diễn mối quan hệ đặc biệt hoá – tổng quát hoá giữa các lớp.
Bài tập giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao
Môn: Lập trình hướng đối tượng (OOP)
Trường: Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh
Thông tin:
Tác giả:
Preview text:
ĐẠI Ọ H C Q Þ U C GIA THÀNH P Þ H Þ H CHÍ MINH ĐẠI Ọ H C CÔNG NG Ệ H THÔNG TIN
- - - ú û û - - -
ĐÀ C¯¡NG ÔN TÀP Môn: OOP – Lập trình h°ớng ố đ i t°ợng
Đặng Minh Tuấn – 20522106 – HTTT2020 TuanDM-HTTT2020 Ni dung
CÂU 1. .......................................................................................................................................................... 4
[2013-2014] ............................................................................................................................................... 4 Gi i
ả : ...................................................................................................................................................... 4
[2014-2015] ............................................................................................................................................... 6 Gi i
ả : ...................................................................................................................................................... 6
[2015-2016] ............................................................................................................................................... 7 Gi i
ả : ...................................................................................................................................................... 8
[2016-2017] ............................................................................................................................................. 10 Gi i
ả : .................................................................................................................................................... 11
[2017-2018] ............................................................................................................................................. 16 Gi i
ả : .................................................................................................................................................... 16
[2018-2019] ............................................................................................................................................. 18 Gi i
ả : .................................................................................................................................................... 18
[2019-2020] ............................................................................................................................................. 20 Gi i
ả : .................................................................................................................................................... 20
CÂU 2. ........................................................................................................................................................ 23
[2013-2014] ............................................................................................................................................. 23 Gi i
ả : .................................................................................................................................................... 26
[2014-2015] ............................................................................................................................................. 28 Gi i
ả : .................................................................................................................................................... 28
[2015-2016] ............................................................................................................................................. 29 Gi i
ả : .................................................................................................................................................... 30
[2016-2017] ............................................................................................................................................. 33 Gi i
ả : .................................................................................................................................................... 34
[2017-2018] ............................................................................................................................................. 38 Gi i
ả : .................................................................................................................................................... 38
[2018-2019] ............................................................................................................................................. 42 Gi i
ả : .................................................................................................................................................... 42
[2019-2020] ............................................................................................................................................. 47 2 TuanDM-HTTT2020 Gi i
ả : .................................................................................................................................................... 47
CÂU 3. ........................................................................................................................................................ 50
[2013-2014] ............................................................................................................................................. 50 Gi i
ả : .................................................................................................................................................... 51
[2014-2015] ............................................................................................................................................. 57 Gi i
ả : .................................................................................................................................................... 58
[2015-2016] ............................................................................................................................................. 62 Gi i
ả : .................................................................................................................................................... 66
[2016-2017] ............................................................................................................................................. 76 Gi i
ả : .................................................................................................................................................... 82
[2017-2018] ............................................................................................................................................. 96 Gi i
ả : .................................................................................................................................................... 99
[2018-2019] ........................................................................................................................................... 107 Gi i
ả : .................................................................................................................................................. 111
[2019-2020] ........................................................................................................................................... 117 Gi i
ả : .................................................................................................................................................. 118 3 TuanDM-HTTT2020 CÂU 1. [2013-2014] HK1
a. Phân biệt các phạm vi truy cập private, protected, public và cho ví dụ minh h a ọ .
b. Nêu khái niệm về s ự kế th a
ừ và những °u điểm của kế th a ừ trong việc lập
trình. Cho ví dụ minh họa. HK2
a. Nêu khái niệm Constructor và Destructor. Phân biệt Constructor mặc định và Constructor khác.
b. Phân biệt các kiểu kế th a
ừ private, protected, public. Giải: HK1 a.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con 4 TuanDM-HTTT2020 - Kế th a
ừ public: Lớp con kế th a
ừ public từ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con. b. - Khái niệm:
K¿ thừa trong lÁp trình là cách 1 lớp có thể thừa h°ởng lại những thuộc tính,
ph°¢ng thức từ 1 l p ớ khác và s
ử dụng chúng nh° là của bản thân mình.
Một định nghĩa trừu t°ợng h¡n về kế th a
ừ : là một đặc điểm của ngôn ng ữ h°ớng đối
t°ợng dùng để biểu diễn m i
ố quan hệ đặc biệt hoá – t n ổ g quát hoá gi a ữ các lớp. - ¯u điểm: • Cho phép xây d n ự g 1 lớp mới t ừ lớp đã có.
▪ Lớp mới gọi là lớp con (subclass) hay lớp d¿n xuất (derived class).
▪ Lớp đã có gọi là lớp cha (superclass) hay lớp c¢ sở (base class).
• Cho phép chia sẻ các thông tin chung nhằm tái s ử dụng và đ n ồ g thßi giúp ta
dễ dàng nâng cấp, dễ dàng bảo trì.
• Định nghĩa sự t°¡ng thích giữa các lớp, nhß đó ta có thể chuyển kiểu t ự động. HK2 a. - Khái niệm:
Ph°¢ng thức khởi t o
ạ (Constructor) là một ph°¡ng thức đặc biệt đ°ợc gọi t ự động
tại thßi điểm đối t°ợng đ°ợc tạo. Các hàm khái tạo có nhiệm v ụ khái tạo thông tin
ban đầu cho các đối t°ợng thuộc về lớp ngay khi đối t°ợng đ°ợc khai báo.
Ph°¢ng thức phá h y
ủ (Destructor) có nhiệm vụ d n
ọ dẹp khi đối t°ợng <đi bán muối=. Nói một cách khác, ph°¡ng thức phá h y ủ có nhiệm vụ
thu hồi lại tất cả các tài nguyên đã cấp phát cho đối t°ợng khi đối t°ợng hết phạm vi hoạt động.
- Constructor mặc định khác với các Constructor khác á các điểm: 5 TuanDM-HTTT2020
• Không có tham số đầu vào. • … b.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con.
_________________________________ [2014-2015] HK2
Phân biệt các kiểu kế th a
ừ private, protected, public (2 điểm) Giải: HK2 6 TuanDM-HTTT2020
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con.
_________________________________ [2015-2016] HK2
a. Phân biệt các kiểu kế th a
ừ private, protected, public. (1 điểm )
b. Trình bày các đặc điểm quan tr n ọ g c a
ủ lập trình h°ớng đối t°ợng. (1 điểm) HK3
a. Định nghĩa constructor (ph°¡ng thức khái tạo) và default constructor
(ph°¡ng thức khái tạo mặc định) (1 điểm )
b. Phân biệt các kiểu kế th a
ừ private, protected, public (1 điểm) 7 TuanDM-HTTT2020 Giải: HK2 a.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con. b.
- Trừu t°ợng hóa – Abstraction Cách nhìn khái quát hóa về một tập các đ i ố t°ợng
có chung các đặc điểm đ°ợc quan tâm (và bỏ qua nh n
ữ g chi tiết không cần thiết). - Đóng gói – Encapsulation Nhóm nh n
ữ g gì có liên quan với nhau vào làm m t ộ , để
sau này có thể dùng một cái tên để gọi đến. Vd: các hàm/ thủ tục đóng gói các câu
lệnh, các đối t°ợng đóng gói dữ liệu của chúng và các thủ tục có liên quan. 8 TuanDM-HTTT2020 - Th a
ừ kế - Inheritance cho phép m t
ộ lớp D có đ°ợc các thuộc tính và thao tác của
lớp C, nh° thể các thuộc tính và thao tác đó đã đ°ợc định nghĩa tại lớp D. Cho phép
cài đặt nhiều quan hệ giữa các đối t°ợng: Đặc biệt hóa – T n ổ g quát hóa.
- Đa hình – Polymorphism Là c¡ chế cho phép m t
ộ tên thao tác hoặc thuộc tính có
thể đ°ợc định nghĩa tại nhiều lớp và có thể có nhiều cài đặt khác nhau tại mỗi lớp trong các lớp đó. HK3 a. Ph°¢ng thức kh i ở t o
ạ (Constructor) là một ph°¡ng thức đặc biệt đ°ợc gọi t ự động
tại thßi điểm đối t°ợng đ°ợc tạo. Các ph°¡ng th c
ứ khái tạo có nhiệm vụ khái tạo
thông tin ban đầu cho các đối t°ợng thuộc về lớp ngay khi đối t°ợng đ°ợc khai báo.
Ph°¢ng thức khởi tạo mặc định (Default Constructor) là ph°¡ng th c ứ thiết lập
các thông tin ban đầu cho đối t°ợng thuộc về lớp bằng nh n
ữ g giá trị mặc định. Khi sử d n ụ g m t
ộ constructor, nếu không có giá trị khái tạo nào do ng°ßi dùng cung cấp
đ°ợc truyền cho constructor này, thì constructor mặc định sẽ đ°ợc gọi. b.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. 9 TuanDM-HTTT2020 - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con.
_________________________________ [2016-2017] HK1
a. Nêu khái niệm về sự kế t ừ
h a và những °u điểm của kế t ừ h a trong việc lập
trình. Cho ví dụ minh họa. (2 điểm)
b. Xét đoạn ch°¡ng trình sau: class A{ A(int i); }; void main(){ A a1; A b2(5); }
Hãy cho biết đoạn ch°¡ng trình trên có lỗi xảy ra hay không? Nếu có hãy giải thích và chỉ ra cách s a ử l i ỗ . (1 điểm) HK2
a. Trình bày khái niệm của lớp c¡ sá trừu t°ợng (abstract class). Lớp c¡ sá
trừu t°ợng đ°ợc cài đặt trong C++ nh° thế nào? (1 điểm)
b. Xét đoạn ch°¡ng trình sau: 10 TuanDM-HTTT2020 #include void main() using namespace std; { class Array{ Array M1; int A[100]; Array M2(10); int n; cout<public: } Array(int n) { //.... } //.... };
Cho biết đoạn ch°¡ng trình trên khi biên dịch có lỗi xảy ra hay không? Nếu
có lỗi, hãy chỉ ra các lỗi đó và s a
ử lỗi để ch°¡ng trình có thể th c ự thi đ°ợc. (1.5 điểm) HK3
a. Phân biệt private, protected, public. (1 điểm)
b. Trình bày về constructor. (1 điểm) Giải: HK1 a. - Khái niệm:
K¿ thừa trong lÁp trình là cách 1 lớp có thể thừa h°ởng lại những thuộc tính,
ph°¢ng thức từ 1 l p ớ khác và s
ử dụng chúng nh° là của bản thân mình.
Một định nghĩa trừu t°ợng h¡n về kế th a
ừ : là một đặc điểm của ngôn ng ữ h°ớng đối
t°ợng dùng để biểu diễn m i
ố quan hệ đặc biệt hoá – t n ổ g quát hoá gi a ữ các lớp. - ¯u điểm: • Cho phép xây d n ự g 1 lớp mới t ừ lớp đã có.
▪ Lớp mới gọi là lớp con (subclass) hay lớp d¿n xuất (derived class).
▪ Lớp đã có gọi là lớp cha (superclass) hay lớp c¢ sở (base class). 11 TuanDM-HTTT2020
• Cho phép chia sẻ các thông tin chung nhằm tái s ử dụng và đ n ồ g thßi giúp ta
dễ dàng nâng cấp, dễ dàng bảo trì.
• Định nghĩa sự t°¡ng thích giữa các lớp, nhß đó ta có thể chuyển kiểu t ự động. b.
- Đoạn ch°¡ng trình trên có lỗi xảy ra vì thiếu t
ừ khóa dẫn xuất (á đây là public để
cho hàm thành phần trong nó có thể truy xuất đ°ợc trong hàm main), thiếu các hàm khái tạo (hàm kh i
ở tạo mặc địn h và hàm kh i
ở tạo nhÁn tham số đầu vào) bên trong lớp. - S a ử : class A{ public: A(){ } A(int i){ } }; void main(){ A a1; A b2(5); } HK2 a.
• Lớp c¡ sá trừu t°ợng (Abstract Class): lớp có ít nhất 1 ph°¡ng thức đ°ợc khai
báo là hàm thuần ảo (pure virtual), hàm thuần ảođ°ợc xác định là một hàm
virtual có kết thúc khai báo hàm là <= 0=. Ví d :
ụ virtual double tinhChuVi () = 0;
• Trong tr°ßng hợp lớp c¡ sá trừu t°ợng có tất cả các ph°¡ng thức là thuần ảo
thì đ°ợc gọi là interface (giao diện). 12 TuanDM-HTTT2020 class Xe { private: string id; string loai; double gia_tien; public: virtual void Nhap() = 0;
virtual double TinhGiatien() = 0; }; b.
- Đoạn ch°¡ng trình trên có lỗi xảy ra vì:
• Sai dòng A a; Array M1; vì ch°a có ph°¡ng thức khái tạo mặc định.
• Sai dòng cout<báo bên ngoài t
ừ khóa dẫn xuất public nên nó không thể truy xuất đ°ợc trong hàm main. - S a ử : #include using namespace std; class Array{ public: int A[100]; int n; Array() 13 TuanDM-HTTT2020 { } Array(int n) { //.... } //.... }; void main() { Array M1; Array M2(10); Array M; cout<} HK3 a. 14 TuanDM-HTTT2020
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con. b. Ph°¢ng thức thi t ¿ l p
Á (Constructor) là một ph°¡ng thức đặc biệt đ°ợc gọi t ự động
tại thßi điểm đối t°ợng đ°ợc tạo. Các ph°¡ng th c
ứ thiết lập có nhiệm vụ thiết lập
thông tin ban đầu cho các đối t°ợng thuộc về lớp ngay khi đối t°ợng đ°ợc khai báo. Đặc điểm:
• Có tên trùng với tên lớp. • Không có kiểu d ữ liệu trả về. • Đ°ợc t ự động gọi t ự
h c hiện ngay khi một đối t°ợng đ°ợc khai báo.
• Có thể có nhiều ph°¡ng thức thiết lập trong 1 lớp.
• Trong một quá trình sống của đối t°ợng thì chỉ có 1 lần duy nhất một ph°¡ng
thức thiết lập đ°ợc gọi th c
ự hiện mà thôi, đó là khi đối t°ợng ra đßi.
• Các ph°¡ng thức thiết lập của lớp thuộc nhóm các ph°¡ng thức khái tạo. 15 TuanDM-HTTT2020
_________________________________ [2017-2018] HK1
a. Phân biệt các phạm vi truy cập private, protected và public. (1 điểm )
b. Cho biết ý nghĩa và mục đích của các hàm get/set trong m t ộ lớp. (1 điểm) HK2 a. Hàm thuần ả
o là gì? Lớp trừu t°ợng là gì? Cho ví dụ minh h a ọ . (1 điểm)
b. Hãy nêu các đặc điểm quan trọng của lập trình h°ớng đối t°ợng. (1 điểm ) Giải: HK1 a.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. 16 TuanDM-HTTT2020 - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con. b. Hàm get: truy vấn d
ữ liệu private từ các đ i
ố t°ợng (đọc giá trị các thành viên d ữ
liệu). Đặc điểm quan tr n
ọ g của ph°¡ng thức truy vấn là nó không nên thay đổi trạng
thái hiện tại của đối t°ợng.
Hàm set: cập nhật d ữ liệu private t
ừ các đối t°ợng (ghi giá trị cho các thành viên d ữ
liệu). Ph°¡ng thức cập n ậ
h t th°ßng để thay đổi trạng thái của đối t°ợng bằng cách
sửa đổi một hoặc nhiều thành viên d
ữ liệu của đối t°ợng đó. HK2 a.
Hàm thuần ảo (Ph°¢ng thức ảo thuần tuý) có ý nghĩa cho việc tổ chức s¡ đồ phân
cấp các lớp, nó đóng vai trò ch a
ừ sẵn chỗ trống cho các lớp con điền vào với phiên
bản phù hợp. Ph°¡ng thức ảo thuần tuý là ph°¡ng thức ảo không có n i ộ dung, đ°ợc khai báo với t
ừ khóa virtual và đ°ợc gán giá trị =0.
Khi lớp có ph°¡ng thức ảo thuần tuý, lớp trá thành lớp c¡ sá trừu t°ợng. Lớp c¡ sá
trừu t°ợng không có đối t°ợng nào thu c ộ chính nó. class Shape //Abstract { public : //Pure virtual Function virtual void draw() = 0; }
Trong ví dụ trên, các hàm thành phần trong lớp Shape là ph°¡ng th c ứ ảo thuần tuý
và lớp Shape là lớp c¡ sá trừu t°ợng. Nó bảo đảm không thể tạo đ°ợc đối t°ợng thuộc lớp Shape. b.
- Trừu t°ợng hóa – Abstraction: Cách nhìn khái quát hóa về m t
ộ tập các đối t°ợng
có chung các đặc điểm đ°ợc quan tâm (và bỏ qua nh n
ữ g chi tiết không cần thiết). 17 TuanDM-HTTT2020 - Đóng gói
– Encapsulation: Nhóm những gì có liên quan với nhau vào làm một, để
sau này có thể dùng một cái tên để gọi đến. Vd: các hàm/ thủ tục đóng gói các câu
lệnh, các đối t°ợng đóng gói dữ liệu của chúng và các thủ tục có liên quan. - Th a
ừ kế - Inheritance: Cho phép một lớp D có đ°ợc các thuộc tính và thao tác của
lớp C, nh° thể các thuộc tính và thao tác đó đã đ°ợc định nghĩa tại lớp D. Cho phép
cài đặt nhiều quan hệ giữa các đối t°ợng: Đặc biệt hóa – T n ổ g quát hóa
- Đa hình – Polymorphism: Là c¡ chế cho phép một tên thao tác hoặc thuộc tính có
thể đ°ợc định nghĩa tại nhiều lớp và có thể có nhiều cài đặt khác nhau tại mỗi lớp trong các lớp đó.
_________________________________ [2018-2019] HK1
a. Phân biệt khái niệm lớp và đối t°ợng trong lập trình h°ớng đối t°ợng. (1 điểm)
b. Trình bày khái niệm đa hình trong lập trình h°ớng đối t°ợng (1 điểm). Cho
ví dụ (0.5 điểm . ) HK2
a. Phân biệt khái niệm overload (tải chồng) và override (ghi đè). (1 điểm)
b. Phân biệt các kiểu kế th a
ừ private, protected và public. (1 điểm ) Giải: HK1 a. • L p
ớ là một mô tả trừu t°ợng của nhóm các đối t°ợng cùng bản chất, ng°ợc lại mỗi m t
ộ đối t°ợng là một thể hiện cụ thể cho nh n
ữ g mô tả trừu t°ợng đó. • L p
ớ là cái ta thiết kế và lập trình. Đối t°ợng là cái ta tạo (t ừ một lớp) tại thßi gian chạy. b.
Đa hình: Là hiện t°ợng các đối t°ợng thu c
ộ các lớp khác nhau có khả năng hiểu
cùng một thông điệp theo các cách khác nhau. 18 TuanDM-HTTT2020
Ví dụ: Nhận đ°ợc cùng một thông điệp nhảy theo hai kiểu khác nhau: chúng cùng có hành vi ó hành vi này có n i ộ dung khác nhau. HK2 a. Override Overload
Là một tính năng cho phép m t
ộ Nạp chồng ph°¡ng thức đ¡n giản
lớp con hoặc lớp con cung cấp một là có vài ph°¡ng th c ứ trùng tên
triển khai cụ thể của một ph°¡ng nh°ng khác nhau về đ iố số. Cài
thức đã đ°ợc cung cấp bái một Khái
chồng ph°¡ng thức cho phép ta
trong các lớp siêu hoặc các lớp cha ni
tạo nhiều phiên bản của m t ộ ệm
của nó. Nói cách khác, nếu lớp con ph°¡ng thức, mỗi phiên bản chấp
cung cấp trình triển khai cụ thể nhận một danh sách đối số khác
của ph°¡ng thức mà đã đ°ợc cung nhau, nhằm tạo thuận lợi cho việc cấp bái m t ộ trong các lớp cha c a ủ gọi ph°¡ng thức. nó, thì đó là g hi đè ph°¡ng thức.
Hành vi Thay đổi hành vi hiện tại của Thêm hoặc má r n ộ g cho hành vi ph°¡ng t ứ h c. của ph°¡ng thức.
Đa hình Thể hiện tính đa hình tại run time. Thể hiện tính đa hình tại compile Danh sách Danh sách tham s ố phải gi n
ố g Danh sách tham số khác nhau (s ố tham s ố nhau. l°ợng, th ứ t , ự kiểu d ữ liệu)
Giá trị Kiểu trả về bắt buộc phải giống tr
Kiểu trả về có thể khác nhau. ả vÁ nhau. Ph ữ ệ ế
ạm vi Xảy ra gi a 2 class có quan h k Xảy ra trong phạm vi cùng 1 class. thừa b. 19 TuanDM-HTTT2020
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con.
_________________________________ [2019-2020] HK2
a. Hãy trình bày những đặc điểm của tính đóng gói (encapsulation) lập trình
h°ớng đối t°ợng. Tr°ßng hợp nào thì có thể vi p ạ
h m tính đóng gói? Cho ví dụ minh h a ọ . (1 điểm)
b. Hãy trình bày những °u điểm của kế thừa trong việc lập trình h°ớng đ i ố
t°ợng và cho ví dụ minh họa. (1 điểm) Giải: a. 20