Professional Documents
Culture Documents
Day 3 Quan He Giua Cac Doi Tuong
Day 3 Quan He Giua Cac Doi Tuong
TÍNH KẾ THỪA
I. Định nghĩa
II. Ví dụ
III. Áp dụng tính kế thừa trong phân tích
IV. Phương thức trừu tượng - Lớp trừu tượng
V. Ghi đè phương thức
VI. Thực hành
KHÓA HỌC JAVA CORE
Biên soạn: GV. Phạm Trung Đoan
I. Định nghĩa
B
Thuộc tính, phương thức
A
KHÓA HỌC JAVA CORE
Biên soạn: GV. Phạm Trung Đoan
II. Ví dụ
Nhân Viên
- Họ tên
- Tuổi
Con Người
- Địa chỉ
- Nghề nghiệp
Học Sinh
KHÓA HỌC JAVA CORE
Biên soạn: GV. Phạm Trung Đoan
Chuyên biệt hóa các đối tượng: Các đối tượng con có thể sẽ được
mở rộng và cụ thể, chi tiết hơn so với đối tượng cha
KHÓA HỌC JAVA CORE
Biên soạn: GV. Phạm Trung Đoan
II. Chú ý
JAVA
không có
ĐA KẾ THỪA
KHÓA HỌC JAVA CORE
Biên soạn: GV. Phạm Trung Đoan
class Person{
void diCho(int tien) {
}
void diCho(int tien,String danhSachCanMua) {
}
}
KHÓA HỌC JAVA CORE
Biên soạn: GV. Phạm Trung Đoan
- Lớp Xe bao gồm: Tốc độ, Biển Số, Hãng Sản Xuất, phương thức nhập/in
thông tin xe
- Lớp Xe Khách kế thừa lớp Xe và bổ sung thêm thông tin Số Hành Khách.
Yêu cầu:
- Xây dựng 2 đối tượng trên
- Có nên ghi đè phương thức in thông tin xe ở lớp Xe Khách không? Tại sao?
KHÓA HỌC JAVA CORE
Biên soạn: GV. Phạm Trung Đoan
public void inTT(){ //in thong tinh do danh canh //in thong tinh chieu dai
} //in thong tinh chieu rong
//in thong tinh 4 dinh } }
//in thong tinh chu vi }
//in thong tinh dien tich
}
}
Giải thích: Như bài toán trong ví dụ trên, ta sử dụng đa hình để định nghĩa 1 hành vi dùng chung là
inTT(), như vậy khi quản lý 1 danh sách các tứ giác (tuGiac1,2,3,….) nếu ta chỉ quan tâm đến hành vi in
thông tin ta sẽ không phân biệt nó là hình vuông hay hình chữ nhật, mà chỉ cần gọi đến 1 hành vi chung
là inTT() như sau:
Như vậy, khi ta gọi đến hành vi inTT() thì ta sẽ thấy rõ sự 3 phương thức này hoạt động theo 3 cách
khác nhau hay nói cách khác là nó phản chiếu hình ảnh của 3 đối tượng khác nhau bao gồm TuGiac
(tuGiac1.inTT();), HinhVuong (tuGiac2.inTT();) và HinhChuNhat (tuGiac3.inTT();).
VD: Chim, Robot đều có hành vi di chuyển, tuy nhiên 2 đối tượng này không có điểm gì chung nhau
Không thể hình thành 1 lớp cha chung được, do đó, không có cách nào để định nghĩa hay xây dựng
phương thức dùng chung là di chuyển cho cả 2 đối tượng trên.
boolean ketQua3 = tuGiac2 instanceof HinhVuong; boolean ketQua4 = tuGiac2 instanceof TuGiac;
ketQua3 = true; ketQua4 = true; //Vì tuGiac2 hình dạng của đối tượng Hình Vuông và Tứ Giác
HỆ THỐNG ĐÀO TẠO CNTT - T3H HÀ NỘI
KHÓA HỌC JAVA CORE
Biên soạn: GV. Phạm Trung Đoan