Bài giảng Lập trình hướng đối tượng - Lớp trừu trượng
Bạn đang xem tài liệu "Bài giảng Lập trình hướng đối tượng - Lớp trừu trượng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_lap_trinh_huong_doi_tuong_lop_truu_truong.ppt
Nội dung text: Bài giảng Lập trình hướng đối tượng - Lớp trừu trượng
- Chương 5 LỚP TRỪU TƯỢNG Abstract Class 1
- Ôn tập Thừa kế: Kỹ thuật cho phép tái sử dụng data và code Lớp con thừa hưởng các đặc điểm của lớp cha. Trong Java, chỉ định thừa kế bằng từ khóa extends ( lớp con là mở rộng) của lớp cha. Overloading method: Kỹ thuật cho phép trong một lớp có các hành vi trùng tên nhưng khác chữ ký. Overriding method: Kỹ thuật cho phép viết lại code của hành vi mà lớp con thừa kế tư lớp cha để tạo ra sự khac biệt. Đa hình trong OOP có được là nhờ kỹ thuật Overriding. Khi ép kiểu (type casying) lớn sang kiểu nhỏ có thể bị tràn trị. Kiểm tra một đối tượng có thuộc về một lớp hay không bằng toan1 tử instanceof. Tham số trong hàm Java là tham số trị. 2
- Mục tiêu Giải thích được lớp trừu tượng là gì. Hiện thực được lớp trừu tượng, hành vi trừu tượng bằng Java. Giải thích đặc điểm của lớp trừu tượng. 3
- Nội dung 5.1- Lớp trừu tượng là gì? 5.2- Hiện thực lớp trừu tượng và hành vi trừu tượng. 5.3- Đặc điểm của lớp trừu tượng. 4
- 5.1- Lớp trừu tượng là gì? Xem kết qủa của việc khái quát hóa sau: Bạn có hình dung nổi một class ANIMAL ANIMAL di Không chuyển như thế void Travel(); Trừu tượng nào không? class Bird class Fish class Snake Bạn có hình dung nổi void Travel() void Travel() void Travel() một đối tượng thuộc các lớp này di chuyển Có cụ thể như thế nào không? 5
- Lớp trừu tượng- Abstract class Là kết qủa của việc khái quát hóa qúa cao đến nỗi không biết viết code thế nào. Là lớp có những hành vi chỉ khai báo mà không viết code. Để dành code cụ thể sẽ được hiện thực ở các lớp dẫn xuất ( lớp cụ thể hơn). Tư duy tự nhiên: – Từ các đối tượng cụ thể Lớp cụ thể. – Từ các lớp cụ thể có cùng tính chất lớp trừu tượng. 6
- Lớp trừu tượng -Bài tập tại lớp Mô tả các lớp cho hình tròn, hình chữ nhật, hình vuông, hình tam giác. Dùng kỹ thuật phân tích phân cấp thừa kế, khái quát hóa các lớp này để sinh ra một lớp trừu tượng có hànhh vi tính diện tích và tình chu vi. LAB: Cài đặt các lớp này. Viết chương trình khai báo biến thuộc lớp trừu tượng. Xuất diện tích và chu vi của 5 hình khác nhau. Diện tích hình tam giác khi biết tọa độ 3 điểm (x1, y1), (x3, y3), (x3, y3): x21=x2 - x1; y21=y2 - y1; x31=x3 - x1; y31=y3 - y1; Diện tích = | y21*x31-x21*y31 | /2; 7
- Lớp trừu tượng. Tư duy theo lối chuyên gia: Khai báo lớp trừu tượng trước ( hoặc tập các hành vi mà ta gọi là inteface – học sau) để các lớp cụ thể hiện thực các hành vi này sau. Lớp cha là lớp trừu tượng, lớp con chưa hiện thực đủ các hành vi trừu tượng được kế thừa từ lớp cha thì lớp con này vẫn là lớp trừu tượng. 8
- 5.2- Hiện thực lớp trừu tượng Cú pháp khai báo lớp trừu tượng abstract class ClassName { abstract [modifier] Type MethodName (Args) ; } Kết hợp KHÔNG cho phép Kết hợp cho phép abstract private abstract public abstract static abstract protected abstract final 9
- Hiện thực lớp trừu tượng Hành vi không có chỉ thị abstract thì phải có code Có hành vi abstract mà lớp không có chỉ thị abstract 10
- Abstract class- Thí dụ Chưa thể viết code vì lương 1 người = lương cơ bản * hệ số 11
- 5.3- Đặc điểm của lớp trừu tượng. Không thể khởi tạo một đối tượng thuộc lớp trừu tượng (abstract) mà chỉ khởi tạo đối tượng thuộc lớp cụ thể (concrete). 12
- Tham khảo lớp cha chỉ đến lớp con Vì biến đối tượng là tham khảo chỉ đến đối tượng nên một biến thuộc lớp cha nhưng lại chỉ đến một lớp con là điều hoàn toàn khả thi dù lớp cha là lớp trừ tượng hay là lớp cụ thề. ĐÂY LÀ CÁCH DÙNG TÍNH ĐA HÌNH TRONG OOP 13
- Lớp con cũng là lớp trừu tượng Biến lớp ông chỉ đến đối tượng lớp cháu 14
- Chú ý về kết hợp abstract với các chỉ thị khác 15
- TÓM TẮT Lớp trừu tượng- abstract class- là sản phẩm của qúa trình khái quát hóa qúa cao. Lớp trừu tượng là lớp có hành vi trừu tượng. Cú pháp khai báo lớp trừu tượng abstract class A { abstract [modifier] Type Method(args); } public, protected, friendly 16
- Tóm tắt Lớp cụ thể (concrete class) là lớp chỉ chứa các hành cụ thể (có code). Lớp con của một lớp trừu tượng mà chưa cụ thể hóa một hành vi trừu tượng thừa kế từ lớp cha thì lớp con này cùng là lớp trừu tượng. 17