Tính kế thừa (Inheritance) trong C#

Trong bài học C# trước chúng ta đã cùng tìm hiểu về Enum trong C# là gì. Để tiếp tục chủ đề các bài học C#, trong bài viết dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn về tính kế thừa (Inheritance) trong C# nhé.

Tương tự như trong Java, C# cũng có tính kế thừa. Để tìm hiểu chi tiết về tính kế thừa (Inheritance) trong C#, bạn đọc cùng tham khảo bài viết dưới đây của Taimienphi.vn nhé.

tinh ke thua (inheritance) trong c#

Tính kế thừa (Inheritance) trong C#
 

Mục Lục bài viết:
1. Tính kế thừa (Inheritance) trong C#.
    1.1. Một số thuật ngữ quan trọng.
2. Sử dụng tính kế thừa trong C#.
3. Các loại tính kế thừa trong C#.

    3.1. Kế thừa một cấp (Single Inheritance).
    3.2. Kế thừa nhiều cấp (Multilevel Inheritance).
    3.3. Kế thừa phân cấp (Hierarchical Inheritance).
    3.4. Đa kế thừa trong C# (Multiple Inheritance).
    3.5. Hybrid Inheritance.
4. Một số lưu ý về tính kế thừa trong C#.

1. Tính kế thừa (Inheritance) trong C#

Tính kế thừa (Inheritance) là yếu tố quan trọng trong lập trình hướng đối tượng (Object Oriented Programming). Nó là một cơ chế trong C#, theo đó một lớp được phép kế thừa các tính năng (trường và phương thức) của lớp khác.

1.1. Một số thuật ngữ quan trọng:

- Super Class: Lớp có các tính năng được kế thừa được gọi là Super Class (hay lớp cơ sở hoặc lớp cha).
- Lớp con (Sub Class): Lớp kế thừa lớp khác được gọi là lớp con (hay còn gọi là lớp dẫn xuất, lớp mở rộng). Lớp con có thể thêm các trường và phương thức riêng, ngoài trường và phương thức của lớp cha.
- Reusability (khả năng sử dụng lại): Tính kế thừa hỗ trợ khái niệm "reusability", tức là khi chúng ta muốn tạo một lớp mới và đã có một lớpbao gồm một số mã mà chúng ta muốn, chúng ta có thể lấy lớp mới từ lớp hiện có. Bằng cách này, chúng ta đang sử dụng lại các trường và phương thức của lớp hiện có.
 

2. Sử dụng tính kế thừa trong C#

Biểu tượng của tính kế thừa trong C# là dấu hai chấm (:).

Cú pháp:

tinh ke thua inheritance trong c 2

Ví dụ:

Trong ví dụ về tính kế thừa trong C# dưới đây, lớp GFG là lớp cơ sở, lớp GeekforGeek là lớp dẫn xuất, mở rộng lớp GFG và lớp Sudo là lớp điều khiển để chạy chương trình.

tinh ke thua inheritance trong c 3

tinh ke thua inheritance trong c 4

Kết quả đầu ra có dạng:

tinh ke thua inheritance trong c 5
 

3. Các loại tính kế thừa trong C#

Dưới đây là danh sách các loại kế thừa khác nhau trong C#:

3.1. Kế thừa một cấp (Single Inheritance)

Trong kế thừa một cấp, các lớp con kế thừa các tính năng của lớp cha. Trong hình minh họa dưới đây, lớp A đóng vai trò là lớp cơ sở cho lớp dẫn xuất B.

tinh ke thua inheritance trong c 6

3.2. Kế thừa nhiều cấp (Multilevel Inheritance)

Trong kế thừa nhiều cấp, lớp dẫn xuất sẽ được kế thừa một lớp cơ sở, và lớp dẫn xuất này cũng đóng vai trò là lớp cơ sở cho lớp khác. Trong hình minh họa dưới đây, lớp A đóng vai trò là lớp cơ sở cho lớp dẫn xuất B, lớp B đóng vai trò là lớp cơ sở cho lớp dẫn xuất C.

tinh ke thua inheritance trong c 7

3.3. Kế thừa phân cấp (Hierarchical Inheritance)

Trong kế thừa phân cấp, một lớp đóng vai trò là lớp cha (super class hay lớp cơ sở) cho nhiều lớp con khác. Trong hình dưới đây, lớp A đóng vai trò là lớp cơ sở cho lớp dẫn xuất B, C và D.

tinh ke thua inheritance trong c 8

3.4. Đa kế thừa trong C# (Multiple Inheritance)

Trong đa kế thừa, một lớp có thể có nhiều hơn một lớp cha và kế thừa từ tất cả các lớp cha. Một lưu ý nhỏ là C# không hỗ trợ đa kế thừa đối với các lớp. Trong C#, chúng ta có thể thực hiện đa kế thừa thông qua giao diện (interface). Trong hình minh họa dưới đây, lớp C có nguồn gốc từ giao diện A và B.

tinh ke thua inheritance trong c 9

3.5. Hybrid Inheritance

Hybrid Inheritance là sự kết hợp của 2 hoặc nhiều loại kế thừa 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 hỗ trợ triển khai với các lớp. Trong C#, chúng ta có thể thực hiện Hybrid Inheritance thông qua giao diện.

tinh ke thua inheritance trong c 10
 

4. Một số lưu ý về tính kế thừa trong C#

- Lớp cha mặc định: Ngoài trừ lớp Object không có lớp cha, mỗi lớp chỉ có một lớp cha trực tiếp (kế thừa một cấp). Trong trường hợp không có lớp cha rõ ràng, mỗi lớp là một lớp con của lớp Object.

- Lớp cha chỉ có một: Một lớp cha có thể có nhiều lớp con, nhưng một lớp con chỉ có thể có một lớp cha. Điều này là bởi vì C# không hỗ trợ đa kế thừa với các lớp. Mặc dù đa kế thừa hỗ trợ C# thông qua giao diện.

- Kế thừa Constructors trong C#: Một lớp con kế thừa tất cả các thành viên (trường, phương thức) từ lớp cha của nó. Các Constructor không phải là thành viên, vì vậy nó không được kế thừa bởi các lớp con, nhưng Constructor của lớp cha có thể được gọi từ lớp con.

- Kế thừa thành viên riêng: Một lớp con không kế thừa các thành viên riêng của lớp cha. Tuy nhiên nếu lớp cha có các thuộc tính (phương thức get và set) để truy cập các trường riêng của nó thì một lớp con có thể kế thừa.

https://thuthuat.taimienphi.vn/tinh-ke-thua-inheritance-trong-c-43810n.aspx
Bài viết trên đây Taimienphi.vn vừa giới thiệu cho bạn về tính kế thừa (Inheritance) trong C#. Hy vọng bài viết trên đây sẽ cung cấp cho bạn các thông tin, kiến thức bổ ích mới về C# nhé. Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết khác đã có trên Taimienphi.vn để tìm hiểu rõ hơn về mảng trong C# cũng như chuỗi trong C# nhé.

Tác giả: Phương Anh     (4.0★- 3 đánh giá)  ĐG của bạn?

  

Bài viết liên quan

Cú pháp C# cơ bản
Vòng lặp (loop) trong C#
Nullable trong C# là gì?
Tính đóng gói (encapsulation) trong C#
Hằng và cách sử dụng hằng trong C#
Từ khoá liên quan:

tinh ke thua inheritance trong c#

, Tính kế thừa (Inheritance) trong C#, tính kế thừa trong C#,

SOFT LIÊN QUAN
  • Lập trình C++

    Giáo trình lập trình C++

    Lập trình C++ là tài liệu hướng dẫn học lập trình C++ - ngôn ngữ lập trình hướng đối tượng mở rộng từ ngôn ngữ C, cung cấp đến bạn các kiến thức về cách thức và tư duy lập trình. Đây là tài liệu rất hữu ích cho những ai ...

Tin Mới