Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
196 KB
Nội dung
Bài Kế thừa Đa hình Ôn tập lại cũ • Lớp đối tượng • Constructor Destructor • Garbage Collector • Con trỏ this • Phương thức(Method) • Chồng phương thức(Method Overloading) • Chông toán tử(Operator Overloading) • Access modifier (phạm vi truy xuất) • Từ khóa ref out Nội dung trình bày • Khái niệm kế thừa • Cài đặt kế thừa • Từ khóa protected • Sealing class • Từ khóa base • Từ khóa new • Method Overriding • Polymorphism(đa hình) Subject name / Session# / of Totalpage Kế thừa đa hình Khái niệm kế thừa • Kế thừa đặc điểm quan trọng ngôn ngữ lập trình hướng đối tượng • Kế thừa khả cho phép sử dụng lại đọan code có sẵn tiết kiệm thời gian lập trình • Lớp A kế thừa từ lớp B lớp A gọi derived class(child class/subclass), lớp B gọi base class(parent class/super class) • Có loại kế thừa: − Đơn kế thừa Ví dụ kế thừa lớp − Đa kế thừa Ví dụ kế thừa Interface Kế thừa đa hình Cài đặt kế thừa • : • Trong classA kế thừa từ classB • Trong lớp classA truy xuất đến thành phần lớp classB thành phần có phạm vi truy xuất proteced public • Các construtor không kế thừa • Ví dụ DEMO kế thừa Kế thừa đa hình Từ khóa proteced • Để qui định phạm vi truy xuất thành phần bên lớp • Một thành phần(thuộc tính, phương thức) Kế thừa đa hình Sealing class • Một lớp có từ khóa sealed có nghĩa lớp không cho phép lớp khác kế thừa … sealed class classOne { //Class Implementation } … Kế thừa đa hình Từ khóa base • Dùng để truy cập đến thành phần(thuộc tính, phương thức…) bên lớp sở từ lớp dẫn xuất(lớp kế thừa) • Dùng để gọi constructor lớp sở tạo đối tượng lớp dẫn xuất • Không sử dụng từ khóa base phương thức tĩnh • Ví dụ DEMO từ khóa base Kế thừa đa hình Từ khóa new • Dùng để che dấu thuộc tính phương thức lớp sở • Do lớp dẫn xuất, muốn gọi thuộc tính phương thức lớp sở, sử dụng từ khóa base • Ví dụ minh họa từ khóa new Kế thừa đa hình Method overriding • Là khả cho phép lớp dẫn xuất định nghĩa lại(override/redefine) phương thức lớp sở • Phương thức lớp sở lớp dẫn xuất có prototype(signature) thưng thực công việc khác • Để override (ghi đè) phương thức lớp sở: − Đặt từ khóa virtual trước phương thức lớp sở − Đặt từ khóa override trước phương thức muốn override lớp dẫn xuất Kế thừa đa hình Overriding method • Cú pháp khai báo [access modifier] virtual [return-type] name( [parameters-list] ) { //virtual method implementation } [access modifier] override [return-type] name( [parameters-list] ) { //virtual method implementation } • Ví dụ DEMO method overriding Kế thừa đa hình Polymorphism(đa hình) • Nói ngữ cảnh chung chung, đa hình khả biến hóa thành nhiều hình dạng khác • Trong lập trình hướng đối tượng: đa hình? − Ví dụ có lớp shape(hình vẽ), lớp shape có phương thức Area() Sau lớp Square(hình vuông), Rectangle(hình CN), Circle(đường tròn) kế thừa từ lớp Shape − Trong lớp Square override phương thức Area() lớp shape thực công việc tính diện tích hình vuông − Trong lớp Rectangle override phương thức Area() lớp shape thực công việc tính diện tích hình chữ nhật Kế thừa đa hình Lớp Circle override phương thức Area() lớp shape thực công việc tính diện tích hình tròn Bây khởi tạo đối tượng lớp Square objSquare = new Square(); Rectangle objRectangle = new Rectangle(); Circle objCircle = new Circle(); Shape objShape; objShapre = objSquare(); objShape.Area(); objShapre = objRectangle(); objShape.Area(); objShapre = objRectangle(); objShape.Area(); Kế thừa đa hình Kết luận: • Đa hình khả biến tham chiếu thay hành vi tùy theo đối tượng mà tham chiếu đến • Cho phép nhiều đối tượng subclass coi đối tượng super class tự động lựa chọn phương thức dựa đối tượng mà phương thức triệu gọi • Ưu điểm: − Dễ mở rộng − Đơn giản hóa code(dễ viết dễ hiểu) Kế thừa đa hình • Đa hình thể dạng: − Method overriding Phương thức subclass nghi đè phương thức lớp sở − Viết chồng (Method overriding) phương thức trừu tượng: Phương thức subclass cài đặt phương thức trừu tượng lớp trừu tượng − Viết chồng (Method overriding) phương thức interface Các phương thức lớp cài đặt phương thức interface − Ví dụ DEMO tính đa hình Kế thừa đa hình Tổng kết • Khái niệm kế thừa cách cài đặt • Từ khóa protected • Từ khóa base • Từ khóa new • Từ khóa sealed • Method overriding • Đa hình [...]... Rectangle c ng override phương th c Area() c a lớp shape và nó th c hiện c ng vi c tính diện tích c a hình chữ nhật Kế thừa và đa hình Lớp Circle override phương th c Area() c a lớp shape và th c hiện c ng vi c tính diện tích c a hình tròn Bây giờ khởi tạo đối tượng c a 3 lớp Square objSquare = new Square(); Rectangle objRectangle = new Rectangle(); Circle objCircle = new Circle(); Shape objShape; objShapre... giản hóa code(dễ viết và dễ hiểu) Kế thừa và đa hình • Đa hình thể hiện ở 3 dạng: − Method overriding Phương th c của subclass nghi đè phương th c của lớp c sở − Viết chồng (Method overriding) phương th c trừu tượng: Phương th c của subclass c i đặt phương th c trừu tượng c a lớp trừu tượng − Viết chồng (Method overriding) c c phương th c của interface C c phương th c của một lớp c i đặt c c phương... objShapre = objRectangle(); objShape.Area(); objShapre = objRectangle(); objShape.Area(); Kế thừa và đa hình Kết luận: • Đa hình là khả năng một biến tham chiếu thay hành vi tùy theo đối tượng mà nó đang tham chiếu đến • Cho phép nhiều đối tượng c a c c subclass đư c coi như là c c đối tượng c a super class và tự động lựa chọn đúng phương th c dựa trên đối tượng mà phương th c đó đư c triệu gọi • Ưu... hình dạng kh c nhau • Trong lập trình hướng đối tượng: thế nào là đa hình? − Ví dụ chúng ta c một lớp shape(hình vẽ), trong lớp shape c phương th c Area() Sau đó c c lớp Square(hình vuông), Rectangle(hình CN), Circle(đường tròn) kế thừa từ lớp Shape − Trong lớp Square override phương th c Area() trong lớp shape và nó th c hiện c ng vi c tính diện tích c a hình vuông − Trong lớp Rectangle c ng override...Kế thừa và đa hình Overriding method • C pháp khai báo [access modifier] virtual [return-type] name( [parameters-list] ) { //virtual method implementation } [access modifier] override [return-type] name( [parameters-list] ) { //virtual method implementation } • Ví dụ DEMO method overriding Kế thừa và đa hình Polymorphism(đa hình) • Nói ở ngữ c nh chung chung, đa hình là khả năng... tượng c a lớp trừu tượng − Viết chồng (Method overriding) c c phương th c của interface C c phương th c của một lớp c i đặt c c phương th c trong một interface − Ví dụ DEMO tính đa hình Kế thừa và đa hình Tổng kết • Khái niệm kế thừa và c ch c i đặt • Từ khóa protected • Từ khóa base • Từ khóa new • Từ khóa sealed • Method overriding • Đa hình ... lại c • Lớp đối tượng • Constructor Destructor • Garbage Collector • Con trỏ this • Phương th c( Method) • Chồng phương th c( Method Overloading) • Chông toán tử(Operator Overloading) • Access... override phương th c Area() lớp shape th c công vi c tính diện tích hình chữ nhật Kế thừa đa hình Lớp Circle override phương th c Area() lớp shape th c công vi c tính diện tích hình tròn Bây... overriding) phương th c interface C c phương th c lớp c i đặt phương th c interface − Ví dụ DEMO tính đa hình Kế thừa đa hình Tổng kết • Khái niệm kế thừa c ch c i đặt • Từ khóa protected • Từ khóa