<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Click to edit Master subtitle style
<b>ĐA HÌNH</b>
Khoa Công nghệ thông tin
Trường Đại học Ngoại ngữ - Tin học, TP.HCM
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
•
Khái niệm
<b>Đa hình</b>
•
Các bước xây dựng chương trình có tính đa
hình
•
Từ khóa ‘
<b>base</b>
’
•
Phương thức trừu tượng (abstract method)
•
Từ khóa ‘
<b>new</b>
’ với phương thức
<b>NỘI DUNG</b>
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
•
<b>Đóng gói </b>
(
Encapsulation
) và Giao diện
(
Interface
)
– <b>Ẩn chi tiết </b>của lớp (Đóng gói), chỉ cung cấp
các phương thức cần thiết để dùng (Giao diện)
•
<b>Thừa kế </b>
(
Inheritance
)
– Tạo lớp mới thừa kế lớp đã có
•
<b>Đa hình </b>
(
Polymorphism
)
– Khả năng tạo ra các lớp dẫn xuất, cài đặt cùng
một method của lớp cơ sở theo những cách
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
Khái niệm
đa hình
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
•
<b>Đa hình </b>
(
<b>poly</b>
<b>morphism</b>
)
– poly = many
– morphism = forms
Khái niệm
Đa hình
Đa hình là hiện tượng các đối tượng thuộc các
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
Khái niệm
Đa hình
LandRove
r
object
Ford
object
Honda
object
Move
<b>LandRover</b> dùng 2.0 L
<b>engine để move</b>
<b>Ford</b> dùng V engine để
move
<b>Honda</b> dùng i-vtec để
move
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
Khái niệm
Đa hình
•
<b>Đa hình phương thức</b>
: Cùng một phương
thức có thể được thực hiện khác nhau trên các
loại đối tượng khác nhau
<i><b>Cùng nguyên mẫu phương thức</b></i>
<i> cho </i>
<i>các lớp khác nhau: overriding phương thức</i>
•
<b>Đa hình đối tượng</b>
: nhìn nhận đối tượng theo
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
<b>Phân biệt Overloading vs Overriding?</b>
•
Overloading (nạp chồng) phương thức: giữ
tên và giá trị trả về,
chỉ thay đổi đối số
•
Overriding (ghi đè) phương thức: giữ
nguyên tên, giá trị trả về và đối số (
không
thay đổi nguyên mẫu phương thức
)
Khái niệm
Đa hình
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
•
<b>Đa hình phương thức</b>
– Các <b>lớp dẫn xuất</b> cài đặt <b>cùng một phương </b>
<b>thức của lớp cơ sở</b>, nhưng mỗi lớp dẫn xuất
có cách <b>cài đặt khác nhau</b>
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
•
Nhờ đặc tính của
<b>thừa kế </b>
giúp:
– Tạo lớp mới dựa trên lớp đã có (lớp cơ sở),
<b>thừa hưởng </b>những gì lớp cơ sở có
– <b>Thêm </b>một số Field và Method mới vào lớp mới
– <b>Cài đặt lại </b>phương thức đã được lớp cơ sở
cung cấp
Khái niệm
Đa hình
</div>
<!--links-->