Bài giảng Lập trình hướng đối tượng: Chương 5 - Trần Thị Huế
Số trang: 40
Loại file: ppt
Dung lượng: 682.00 KB
Lượt xem: 17
Lượt tải: 0
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 - Chương 5 trình bày về tính đa hình trong lập trình hướng đối tượng. Những nội dung chính trong chương này gồm có: Đa hình (upcasting/downcasting, liên kết động), lớp và phương thức trừu tượng (lớp/phương thức trừu tượng, template method), đa kế thừa và giao diện. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Chương 5 - Trần Thị HuếĐA HÌNHNội dung Đa hình upcasting / downcasting liên kết động Lớp và phương thức trừu tượng lớp/phương thức trừu tượng template method Đa kế thừa và giao diện Kế thừa và đa hình 2Tài liệu tham khảo Thinking in Java, chapter 7, 8 Java how to program, chapter 9 http://www.mediafire.com/?tkl6b4a7ace60 Kế thừa và đa hình 3Polymorphism (đa hình) là gì Polymorphism: nhiều hình thức, nhiều kiểu tồn tại Đa hình trong lập trình đa hình hàm: hàm trùng tên, phân biệt bởi danh sách tham số đa hình đối tượng nhìn nhận đối tượng theo nhiều kiểu khác nhau các đối tượng khác nhau giải nghĩa thông điệp theo cách thức khác nhau Kế thừa và đa hình 4Up casting 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ở dùng đối tượng của lớp dẫn xuất để truyền tham số dùng đối tượng của lớp dẫn xuất làm thuộc tính Kế thừa và đa hình 5 Person Person p;-name Employee e = new Employee();-birthday p = (Person) e;+setName() p.setName(...);+setBirthday() p.setSalary(...); // compile error Employee-salary+setSalary()+getDetail() Kế thừa và đa hình 6String teamInfo(Person p1, Person p2) { return Leader: + p1.getName() + ; member: + p2.getName();}...Employee e1, e2;Manager m1, m2;…System.out.println(teamInfo(e1, e2));teamInfo(m1, m2);teamInfo(m1,e2); Kế thừa và đa hình 7Đa hình và liên kết động Khả năng giải nghĩa các thông điệp theo các cách thức khác nhauPerson p1 = new Person();Person p2 = new Employee();Person p3 = new Manager();...System.out.println(p1.getDetail());System.out.println(p2.getDetail());System.out.println(p3.getDetail()); Kế thừa và đa hình 8class EmployeeList { Employee list[];... public void add(Employee e) {...} public void print() { for (int i=0; iLiên kết tĩnh và liên kết độngStatic and dynamic binding Liên kết tĩnh: lời gọi hàm (phương thức) được quyết định khi biên dịch, do đó chỉ có một phiên bản của chương trình con được thực hiện ưu điểm về tốc độ Liên kết động: lời gọi phương thức được quyết định khi thực hiện, phiên bản của phương thức phù hợp với đối tượng được gọi Java mặc định sử dụng liên kết động liên kết tĩnh: final / private method Kế thừa và đa hình 10Đa hình: Gọi phương thức trong constructorclass Shape { public Shape() { draw(); } public void draw() {}}class Point extends Shape { protected int x, y; public Point(int xx, int yy) { x = xx; y = yy; } public void draw() { System.out.println(( + x + , + y + )); }}--Point p = new Point(10, 10); Kế thừa và đa hình 11Đa hình: private methodclass Base { private void f() { System.out.println(”base f()”); } public void show() { f(); }}public class Derived extends Base { private void f() { System.out.println(”derived f()”); } public static void main(String args[]) { Derived d = new Derived(); Base b = d; b.show(); }} Kế thừa và đa hình 12Down castingEmployee e = new Employee();Person p = e; // up castingEmployee ee = (Employee)p; // down castingManager m = (Manager)ee; // run-time errorPerson p2 = new Manager();Employee e2 = (Employee) p2; Kế thừa và đa hình 13Toán tử instanceofpublic class Employee extends Person {}public class Student extends Person {}---public doSomthing(Person e) { if (e instanceof Employee) {... } else if (e instanceof Student) {... } else {...}} Kế thừa và đa hình 14Lớp trừu tượng Chúng ta có thể tạo ra các lớp cơ sở để tái sử dụng mà không cần tạo ra đối tượng thực của lớp các lớp Point, Circle, Rectangle chung nhau khái niệm cùng là hình vẽ Shape Giải pháp là khái báo lớp trừu tượng không thể tạo đối tượng Kế thừa và đa hình 15abstract class Shape { protected int x, y; Shape(int xx, int xy) { x = xx; y = yy; }}...Shape s1 = new Circle();Shape s = new Shape(10, 10) // compile error Kế thừa và đa hình 16class Circle extends Shape { int r; public Circle(int xx, int yy, int rr) { super(xx, yy); r = rr; }...} Kế thừa và đa hình 17Phương thức trừu tượng Để thống nhất giao diện, có thể khai ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Chương 5 - Trần Thị HuếĐA HÌNHNội dung Đa hình upcasting / downcasting liên kết động Lớp và phương thức trừu tượng lớp/phương thức trừu tượng template method Đa kế thừa và giao diện Kế thừa và đa hình 2Tài liệu tham khảo Thinking in Java, chapter 7, 8 Java how to program, chapter 9 http://www.mediafire.com/?tkl6b4a7ace60 Kế thừa và đa hình 3Polymorphism (đa hình) là gì Polymorphism: nhiều hình thức, nhiều kiểu tồn tại Đa hình trong lập trình đa hình hàm: hàm trùng tên, phân biệt bởi danh sách tham số đa hình đối tượng nhìn nhận đối tượng theo nhiều kiểu khác nhau các đối tượng khác nhau giải nghĩa thông điệp theo cách thức khác nhau Kế thừa và đa hình 4Up casting 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ở dùng đối tượng của lớp dẫn xuất để truyền tham số dùng đối tượng của lớp dẫn xuất làm thuộc tính Kế thừa và đa hình 5 Person Person p;-name Employee e = new Employee();-birthday p = (Person) e;+setName() p.setName(...);+setBirthday() p.setSalary(...); // compile error Employee-salary+setSalary()+getDetail() Kế thừa và đa hình 6String teamInfo(Person p1, Person p2) { return Leader: + p1.getName() + ; member: + p2.getName();}...Employee e1, e2;Manager m1, m2;…System.out.println(teamInfo(e1, e2));teamInfo(m1, m2);teamInfo(m1,e2); Kế thừa và đa hình 7Đa hình và liên kết động Khả năng giải nghĩa các thông điệp theo các cách thức khác nhauPerson p1 = new Person();Person p2 = new Employee();Person p3 = new Manager();...System.out.println(p1.getDetail());System.out.println(p2.getDetail());System.out.println(p3.getDetail()); Kế thừa và đa hình 8class EmployeeList { Employee list[];... public void add(Employee e) {...} public void print() { for (int i=0; iLiên kết tĩnh và liên kết độngStatic and dynamic binding Liên kết tĩnh: lời gọi hàm (phương thức) được quyết định khi biên dịch, do đó chỉ có một phiên bản của chương trình con được thực hiện ưu điểm về tốc độ Liên kết động: lời gọi phương thức được quyết định khi thực hiện, phiên bản của phương thức phù hợp với đối tượng được gọi Java mặc định sử dụng liên kết động liên kết tĩnh: final / private method Kế thừa và đa hình 10Đa hình: Gọi phương thức trong constructorclass Shape { public Shape() { draw(); } public void draw() {}}class Point extends Shape { protected int x, y; public Point(int xx, int yy) { x = xx; y = yy; } public void draw() { System.out.println(( + x + , + y + )); }}--Point p = new Point(10, 10); Kế thừa và đa hình 11Đa hình: private methodclass Base { private void f() { System.out.println(”base f()”); } public void show() { f(); }}public class Derived extends Base { private void f() { System.out.println(”derived f()”); } public static void main(String args[]) { Derived d = new Derived(); Base b = d; b.show(); }} Kế thừa và đa hình 12Down castingEmployee e = new Employee();Person p = e; // up castingEmployee ee = (Employee)p; // down castingManager m = (Manager)ee; // run-time errorPerson p2 = new Manager();Employee e2 = (Employee) p2; Kế thừa và đa hình 13Toán tử instanceofpublic class Employee extends Person {}public class Student extends Person {}---public doSomthing(Person e) { if (e instanceof Employee) {... } else if (e instanceof Student) {... } else {...}} Kế thừa và đa hình 14Lớp trừu tượng Chúng ta có thể tạo ra các lớp cơ sở để tái sử dụng mà không cần tạo ra đối tượng thực của lớp các lớp Point, Circle, Rectangle chung nhau khái niệm cùng là hình vẽ Shape Giải pháp là khái báo lớp trừu tượng không thể tạo đối tượng Kế thừa và đa hình 15abstract class Shape { protected int x, y; Shape(int xx, int xy) { x = xx; y = yy; }}...Shape s1 = new Circle();Shape s = new Shape(10, 10) // compile error Kế thừa và đa hình 16class Circle extends Shape { int r; public Circle(int xx, int yy, int rr) { super(xx, yy); r = rr; }...} Kế thừa và đa hình 17Phương thức trừu tượng Để thống nhất giao diện, có thể khai ...
Tìm kiếm theo từ khóa liên quan:
Hướng đối tượng Lập trình hướng đối tượng Bài giảng Lập trình hướng đối tượng Công nghệ hướng đối tượng Phương thức trừu tượng Liên kết độngGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 255 0 0 -
101 trang 193 1 0
-
14 trang 128 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 110 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 94 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 90 0 0 -
265 trang 73 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 72 0 0 -
33 trang 59 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 50 0 0