Mục lục
Trong C#, thừa kế là một quá trình trong đó một đối tượng có được tất cả các thuộc tính và hành vi của đối tượng cha của nó một cách tự động. Theo cách đó, chúng ta có thể sử dụng lại, mở rộng hoặc sửa đổi các thuộc tính và hành vi đã được định nghĩa trong một lớp khác.
Trong C#, lớp kế thừa các thành viên của lớp khác được gọi là lớp dẫn xuất (derived) và lớp có các thành viên được kế thừa được gọi là lớp cơ sở (base). Lớp dẫn xuất là lớp chuyên biệt cho lớp cơ sở.
Cú pháp
|
Ưu điểm của thừa kế là có thể sử dụng lại các thành viên của lớp cha mà không cần phải định nghĩa lại thành viên lần nữa. Vì vậy, chương trình chúng ta sẽ ít code hơn.
Trong c# có nhiều loại thừa kế được hỗ trợ như thừa kế đơn (Single Inheritance), thừa kế đa cấp độ (Single Inheritance), thừa kế phân cấp (Hierarchical Inheritance). Chúng ta cùng tìm hiểu từng loại thừa kế một nhé.
Single Inheritance
nghĩa là một lớp chỉ kế thừa từ một lớp cha. Như hình dưới đây:
Ví dụ
|
Và kết quả sau khi thực thi đoạn code trên:
Multilevel Inheritance
nghĩa là một lớp kế thừa từ một lớp cha, mà lớp cha đó lại kế thừa từ một lớp khác. Như hình dưới đây:
Ví dụ
|
Như vậy lớp con không chỉ có tất cả thuộc tính và hành vi của lớp cha trực tiếp của nó mà nó còn thừa kế tất cả thuộc tính và hành vi của lớp cha của lớp cha ở trên nữa. Giống như con không những thừa kế tài sản từ cha mà còn từ ông nội, ông cố, ông sơ... :)
Hierarchical Inheritance
nghĩa là một lớp có nhiều lớp con hay nói cách khác là có nhiều lớp cùng thừa kế từ một lớp cha. Như hình dưới đây:
Ví dụ
|
Và kết quả sau khi thực thi đoạn code trên:
Ngoài ra còn có loại thừa kế như đa thừa kế (Multiple Inheritance) và thừa kế hổn hợp (Hybrid Inheritance) không được hỗ trợ trong ngôn ngữ lập trình c# (đối với lớp)
Mặc dù không được hỗ trợ trong c# chúng ta cũng nên tìm hiểu sơ nó là gì nhé :)
Multiple Inheritance
nghĩa là một lớp thừa kế nhiều hơn một lớp cha. C# không hỗ trợ đa kế thừa với các lớp. Trong C#, chúng ta chỉ có thể đạt được đa kế thừa thông qua giao diện (interface). Interface
là gì và làm sao để thực hiện đa thừa kế thông qua interface
chúng ta sẽ tìm hiểu trong một bài khác.
Chúng ta xem hinh dưới đây:
Hybrid Inheritance
là hỗn hợp từ nhiều loại thừa kế kể trên. Vì C# không hỗ trợ đa kế thừa với các lớp, nên Hybrid Inheritance
cũng không thể thực hiện được với các lớp. Trong C#, chúng ta chỉ có thể đạt được Hybrid Inheritance
thông qua giao diện (interface)
Như hình dưới đây:
Về bài trước... |
Bài tiếp theo... |
+ Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!
* Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!
* Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!
+ -:
+ -: