Danh mục

Bài giảng môn Lập trình hướng đối tượng: Bài 8 - Đa hình

Số trang: 37      Loại file: pdf      Dung lượng: 802.61 KB      Lượt xem: 13      Lượt tải: 0    
Jamona

Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng "Lập trình hướng đối tượng: Bài 8 - Đa hình" được biên soạn bao gồm các nội dung chính sau: Giới thiệu về upcasting và downcasting; Phân biệt liên kết tĩnh và liên kết độ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. Mời các bạn cùng tham khảo bài giảng.
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ài liệu được xem nhiều:

Tài liệu cùng danh mục:

Tài liệu mới: