Khái niệm kế thừa• Kế thừa là một đặc điểm quan trọng của ngôn ngữ lập trình hướng đối tượng • Kế thừa là khả năng cho phép sử dụng lại những đọan code đã có sẵn do đó sẽ tiết kiệm thời
Trang 1Kế thừa và Đa hình
Trang 2• 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 và out
Trang 3Subject name / Session# / 3 of Totalpage
• Từ khóa protected
• Sealing class
• Từ khóa base
• Từ khóa new
• Method Overriding
• Polymorphism(đa hình)
Trang 4Khái niệm kế thừa
• Kế thừa là một đặc điểm quan trọng của ngôn ngữ lập trình hướng đối tượng
• Kế thừa là khả năng cho phép sử dụng lại những đọan code đã có
sẵn do đó sẽ tiết kiệm thời gian lập trình
• Lớp A kế thừa từ lớp B thì lớp A gọi là derived class(child
class/subclass), lớp B gọi là base class(parent class/super class)
• Có 2 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
Trang 5Cài đặt kế thừa
• <classA>:<classB>
• Trong đó là classA kế thừa từ classB
• Trong lớp classA có thể truy xuất đến các thành phần trong lớp
classB nếu thành phần đó có phạm vi truy xuất là proteced hoặc public
• Các construtor không được kế thừa
• Ví dụ DEMO kế thừa
Trang 6Từ khóa proteced
• Để qui định phạm vi truy xuất các thành phần bên trong một lớp
• Một thành phần(thuộc tính, phương thức) được
Trang 7Sealing class
• Một lớp có từ khóa sealed có nghĩa là lớp đó không cho phép các lớp khác kế thừa
… sealed class classOne
{ //Class Implementation }
…
Trang 8Từ khóa base
• Dùng để truy cập đến các thành phần(thuộc tính, phương thức…) bên trong lớp cơ sở từ lớp dẫn xuất(lớp kế thừa)
• Dùng để gọi constructor của lớp cơ sở khi tạo đối tượng của lớp
dẫn xuất
• Không được sử dụng từ khóa base trong phương thức tĩnh.
• Ví dụ DEMO từ khóa base
Trang 9Từ khóa new
• Dùng để che dấu đi các thuộc tính và phương thức của lớp cơ sở
• Do đó trong lớp dẫn xuất, muốn gọi các thuộc tính hoặc phương thức ở lớp cơ sở, sử dụng từ khóa base
• Ví dụ minh họa từ khóa new
Trang 10Method overriding
• Là khả năng cho phép lớp dẫn xuất định nghĩa lại(override/redefine) các phương thức của lớp cơ sở
• Phương thức ở lớp cơ sở và lớp dẫn xuất có cùng một
prototype(signature) nhưng thưng thực hiện các công việc khác
nhau
• Để override (ghi đè) một phương thức ơ lớp cơ sở:
Đặt từ khóa virtual trước phương thức trong lớp cơ sở
Đặt từ khóa override trước phương thức muốn override trong lớp dẫn xuất
Trang 11Overriding method
• Cú pháp khai báo
• Ví dụ DEMO method overriding
[access modifier] virtual [return-type] name( [parameters-list] )
{
//virtual method implementation }
[access modifier] override [return-type] name( [parameters-list] )
{
//virtual method implementation }
Trang 12Polymorphism(đa hình)
• Nói ở ngữ cảnh chung chung, đa hình là khả năng biến hóa thành nhiề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 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
Trang 13hiệ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 = objSquare();
objShape.Area();
objShapre = objRectangle();
objShape.Area();
objShapre = objRectangle();
objShape.Area();
Trang 14Kế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 điểm:
Dễ mở rộng
Đơn giản hóa code(dễ viết và dễ hiểu)
Trang 15 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 thức trong một interface
Ví dụ DEMO tính đa hình
Trang 16Tổ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