Tải bản đầy đủ (.pdf) (23 trang)

ĐA HÌNH (POLYMORPHISM) ĐIỂM CAO

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (844.87 KB, 23 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

ĐA HÌNH

<b><small>Giảng viên: Đỗ Ngọc Như Loan</small></b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

ĐA HÌNH

<small></small> Là 1 trong những đặc điểm chính của phương pháp lập trình hướng đối tượng.

<small></small> <b>Tính đa hình cho phép một phương thức có các tác </b>

<b>động khác nhau trên nhiều loại đối tượng khác nhau.</b>

<small></small> <b>Đối tượng sẽ thể hiện đúng hành vi tính chất của</b>

<b>đối tượng mà nó trỏ (gán) đến</b>

<small></small> Cụ thể khi ta gán 1 đối tượng x của lớp cha bằng đối tượng y của lớp con thì đối tượng x phải thể hiện

hành vi tính chất của đối tượng y

<small>Đối tượng x thể hiện hành vi tính chất của x.Gán x=y thì x thể hiện hành vi tính chất của yGán x=z thì x thể hiện hành vi tính chất của z</small>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>VÍ DỤ</b>

<small></small> Khi khai báo đối tượng Người x là Sinh viên thì x thể hiện hành vi tính chất của 1 sinh viên

thì x thể hiện hành vi tính chất của 1 nhân

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<small></small> Khi ta khai báo động vật là một con mèo thì nó phải kêu meo meo

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>CÁCH CÀI ĐẶT</b>

số và kiểu trả về với phương thức của lớp cha 

<b>Overriding (ghi đè/phủ quyết)</b>

trước khai báo phương thức trùng tên của lớp con (không bắt buộc)

và định nghĩa lại hàm cho lớp con

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b><small>public class DONGVAT</small></b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b><small>class MEO extends DONGVAT </small></b>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b><small>class CHO extends DONGVAT </small></b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<small>public static void main(String[] args) </small>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>TỐN TỬ INSTANCEOF</b>

<small>Tốn tử instanceof: kiểm tra kiểu của đối tượng(trả về true hoặc false)</small>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b><small>class MEO extends DONGVAT </small></b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b><small>class CHO extends DONGVAT </small></b>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<small>public static void main(String[] args) {</small>

<small>DONGVAT[] dv = new DONGVAT[2]; dv[0] = new CHO("Lulu",15,"vang");</small>

<small>dv[1] = new MEO("Doremon",3,"xanh");</small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>Lớp chứa được gọi làlớp ngồi (outer class).</small>

<small>Lớp lồng bên trong có khả năng truy cập đến tất cả các thành viên của lớp ngồi.</small>

<small>Lớp lồng bên trong có thể ẩn đối với tất cả các lớp khác(private), nếu lớp lồng là lớp public thì có thể được truyxuất thơng qua lớp ngoài theo cú pháp<lớp outer>.<lớpnested></small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<small>Xây dựng hàm keu() của lớp động vật không thực thi:</small>

<small>abstract void keu(); </small>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>LỚP TRỪU TƯỢNG </b>

(ABSTRACT CLASS)

<small>Lớp trừu tượng là lớp khơng có đối tượng cụ thể, nó dùngđể cho các lớp khác kế thừa nó. </small>

<small>Lớp trừu tượng chứa ít nhất một hàm trừu tượng. Cáchàm trừu tượng này sẽ được thực thi ở lớp dẫn xuất.</small>

<small>Không thể tạo thể hiện cho lớp trừu tượng.</small>

<small>abstractpublic class DONGVAT { …. }</small>

<small>public class MEO extends DONGVAT { …. }</small>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b><small>public abstractclass DONGVAT</small></b>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b><small>class MEO extends DONGVAT </small></b>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<small>public static void main(String[] args) {</small>

<small>DONGVAT[] dv = new DONGVAT[2];</small>

<b><small>// dv[0] = new DONGVAT(); -- error</small></b>

<small>dv[1] = new MEO(“Doremon”,3,”xanh”);dv[1].keu();</small>

<small>}</small>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>LUYỆN TẬP</b>

có hàm trừu tượng: tinhdientich(); tinhchuvi(); nhap(); xuat();

kế thừa từ lớp hình học và hiện thực hóa các hàm trừu tượng trong lớp hình học.

thức.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>BÀI TẬP</b>

<small>Viết chương trình để quản lí thơng tin nhân viên và tính lương cho nhân viên. Biết trong cơng ty có ba loại nhân viên và cách tính lương như sau: </small>

<small>+ Thuộc tính: Mã NV (int), họ tên, địa chỉ</small>

<small>+ Phương thức thiết lập ko tham số và có tham số, nhap(), xuat(), tinhluong(). Phương thức tinhluong() là phương thức trừu tượng</small>

<small>+ Lớp NVSX có thuộc tính số sản phẩm, NVCN có thuộc tính số ngàycơng, NVQL có thuộc tinh hệ số lương và lương cơ bản. </small>

<small>+ Phương thức thiết lập ko tham số và có tham số, nhap(), xuat(), tinhluong() (override phương thức ở lớp cha)</small>

<small>+ Thuộc tính: Số lượng nhân viên, danh sách nhân viên</small>

<small>+ Phương thức thiết lập ko tham số và có tham số, nhap(), xuat(), </small>

<small>xuatluong(). Khi nhập 1 nhân viên cần cho lựa chọn nhập nhân viên loạinào.</small>

</div>

×