Bài giảng môn Lập trình hướng đối tượng: Bài 8 - Đa hình
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng môn Lập trình hướng đối tượng: Bài 8 - Đa hìnhBài 8: Đa hìnhMục tiêu❖ Giới thiệu về upcasting và downcasting❖ Phân biệt liên kết tĩnh và liên kết động❖ Nắm vững kỹ thuật đa hình❖ Ví dụ và bài tập về các vấn đề trên với ngôn ngữ lập trình Java 2Nội dung1. Upcasting và Downcasting2. Liên kết tĩnh và Liên kết động3. Đa hình (Polymorphism)4. Ví dụ và bài tập 3Nội dung1. Upcasting và Downcasting2. Liên kết tĩnh và Liên kết động3. Đa hình (Polymorphism)4. Ví dụ và bài tập 41. Upcasting và Downcasting❖ Chuyển đổi kiểu dữ liệu nguyên thủy ▪ Java tự động chuyển đổi kiểu khi • Kiểu dữ liệu tương thích • Chuyển đổi từ kiểu hẹp hơn sang kiểu rộng hơn int i; double d = i; ▪ Phải ép kiểu khi • Kiểu dữ liệu không tương thích • Chuyển đổi từ kiểu rộng hơn sang kiểu hẹp hơn int i; byte b = i; byte b = (byte)i; 51. Upcasting và Downcasting❖ Chuyển đổi kiểu dữ liệu tham chiếu ▪ Kiểu dữ liệu tham chiếu có thể được chuyển đổi kiểu khi • Kiểu dữ liệu tham chiếu (lớp) tương thích A • Nằm trên cùng một cây phân cấp kế thừa A var1 = new B(); A var1 = new A(); C var2 = (C)var1; B ▪ Hai loại chuyển đổi • Up-casting • Down-casting C 61.1 Upcasting❖ Upcasting: đi lên trên cây phân cấp thừa kế (moving up the inheritance hierarchy)❖ Upcasting là khả năng nhìn nhận đối tượng thuộc lớp dẫn xuất như là một đối tượng thuộc lớp cơ sở.❖ Tự động chuyển đổi kiểu 7Ví dụ Upcasting Person - name: String - birthday: Date + setName(String) + setBirthday(Date) + getDetails(): Stringpublic class Test1 { Employee public static void main(String arg[]) { Employee e = new Employee(); - salary: double Person p; + setSalary(double) p = e; + getDetails(): String p.setName(“Hoa”); p.setSalary(350000); // compile error} 8Ví dụ Upcasting Personclass Manager extends Employee { - name: String Employee assistant; - birthday: Date // ... + setName(String) public void setAssistant(Employee e) { + setBirthday(Date) assistant = e; + getDetails(): String } // ...} Employeepublic class Test2 { - salary: double public static void main(String arg[]) { + setSalary(double) Manager junior, senior; + getDetails(): String // ... senior.setAssistant(junior); Manager } - assistant: Employee} + setAssistant(Employee) + getDetails():String 9 Ví dụ Upcasting Personpublic class Test3 { - name: String String static teamInfo(Person p1, - birthday: Date Person p2) { + setName(String) return Leader: + p1.getName() + + setBirthday(Date) , member: + p2.getName(); + getDetails(): String } public static void main(String arg[]) { Employee e1, e2; Employee Manager m1, m2; - salary: double // ... + setSalary(double) System.out.println(teamInfo(e1, e2)); + getDetails(): String System.out.println(teamInfo(m1, m2)); System.out.println(teamInfo(m1, e2)); Manager } - assistant: Employee} + setAssistant(Employee) + getDetails():String ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình hướng đối tượng Lập trình hướng đối tượng Giới thiệu về upcasting Kỹ thuật đa hình Ngôn ngữ lập trình Java Giới thiệu về downcastingTài liệu cùng danh mục:
-
Tìm hiểu về lỗi tràn bộ đệm (Buffer Overflow)
5 trang 364 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 344 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 7 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
16 trang 335 0 0 -
180 trang 274 0 0
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 253 0 0 -
173 trang 247 2 0
-
Bài giảng Phân tích thiết kế và giải thuật - Chương 2: Kỹ thuật thiết kế giải thuật
80 trang 244 0 0 -
Kiến thức phần cứng máy tính - Sửa chữa nâng cấp và cài đặt máy tính xách tay Tập 2
483 trang 243 3 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 242 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 6 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
12 trang 240 0 0
Tài liệu mới:
-
Khảo sát tình trạng dinh dưỡng trước mổ ở người bệnh ung thư đại trực tràng
9 trang 21 0 0 -
94 trang 19 0 0
-
Tham vấn Thanh thiếu niên - ĐH Mở Bán công TP Hồ Chí Minh
276 trang 20 0 0 -
Kết hợp luân phiên sóng T và biến thiên nhịp tim trong tiên lượng bệnh nhân suy tim
10 trang 19 0 0 -
Đề thi giữa học kì 1 môn Ngữ văn lớp 9 năm 2024-2025 có đáp án - Trường THCS Nguyễn Trãi, Thanh Khê
14 trang 21 0 0 -
Đánh giá hiệu quả giải pháp phát triển thể chất cho sinh viên Trường Đại học Kiến trúc Hà Nội
8 trang 20 0 0 -
Tỉ lệ và các yếu tố liên quan đoạn chi dưới ở bệnh nhân đái tháo đường có loét chân
11 trang 20 0 0 -
39 trang 19 0 0
-
Đề thi học kì 1 môn Tiếng Anh lớp 6 năm 2024-2025 có đáp án - Trường TH&THCS Quang Trung, Hội An
6 trang 19 1 0 -
Tôm ram lá chanh vừa nhanh vừa dễRất dễ làm, nhanh gọn mà lại ngon. Nhà mình
7 trang 19 0 0