Bài giảng Lập trình hướng đối tượng: Bài 8 - ThS. Trịnh Thành Trung

pdf
Số trang Bài giảng Lập trình hướng đối tượng: Bài 8 - ThS. Trịnh Thành Trung 26 Cỡ tệp Bài giảng Lập trình hướng đối tượng: Bài 8 - ThS. Trịnh Thành Trung 477 KB Lượt tải Bài giảng Lập trình hướng đối tượng: Bài 8 - ThS. Trịnh Thành Trung 1 Lượt đọc Bài giảng Lập trình hướng đối tượng: Bài 8 - ThS. Trịnh Thành Trung 42
Đánh giá Bài giảng Lập trình hướng đối tượng: Bài 8 - ThS. Trịnh Thành Trung
4.6 ( 18 lượt)
Nhấn vào bên dưới để tải tài liệu
Đang xem trước 10 trên tổng 26 trang, để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

Bài 8 Đa hình Trịnh Thành Trung trungtt@soict.hust.edu.vn Nội dung 1. Upcasting và downcasting 2. Đa hình 3. Liên kết tĩnh và liên kết động 1 Up-casting và down-casting Chuyển đổi kiểu dữ liệu đối tượng 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 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; 4 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 A • Kiểu dữ liệu tham chiếu (lớp) tương thích • Nằm trên cùng một cây phân cấp kế thừa • Hai cách chuyển đổi B • Up-casting • Down-casting C 5 Up-casting • Up casting: đi lên trên cây phân cấp thừa kế (moving up the inheritance hierarchy) • Up casting 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 6 Ví dụ public class Test1 { public static void main(String arg[]) { Employee e = new Employee(); Person p; p = e; p.setName(“Hoa”); p.setSalary(350000); // compile error } Person - name: String - birthday: Date + setName(String) + setBirthday(Date) + getDetails(): String Employee - salary: double + setSalary(double) + getDetails(): String 7 Person Ví dụ - name: String - birthday: Date + setName(String) + setBirthday(Date) class Manager extends Employee { Employee assistant; // ... public void setAssistant(Employee e) { assistant = e; } // ... } public class Test2 { public static void main(String arg[]) { Manager junior, senior; // ... senior.setAssistant(junior); } } + getDetails(): String Employee - salary: double + setSalary(double) + getDetails(): String Manager - assistant: Employee + setAssistant(Employee) + getDetails():String 8 Person Ví dụ - name: String - birthday: Date + setName(String) + setBirthday(Date) public class Test3 { String static teamInfo(Person p1, Person p2) { return "Leader: " + p1.getName() + ", member: " + p2.getName(); } + getDetails(): String Employee - salary: double + setSalary(double) public static void main(String arg[]) { Employee e1, e2; Manager m1, m2; // ... System.out.println(teamInfo(e1, e2)); System.out.println(teamInfo(m1, m2)); System.out.println(teamInfo(m1, e2)); } } + getDetails(): String Manager - assistant: Employee + setAssistant(Employee) + getDetails():String 9 Down-casting • Down casting: đi xuống cây phân cấp thừa kế (move back down the inheritance hierarchy) • Down casting là khả năng nhìn nhận một đối tượng thuộc lớp cơ sở như một đối tượng thuộc lớp dẫn xuất. • Không tự động chuyển đổi kiểu  Phải ép kiểu. 10
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.