Kế thừa C#
Kế thừa (Lớp phái sinh và lớp cơ sở)
Trong C#, có thể kế thừa các trường và phương thức từ lớp này sang lớp khác. Chúng tôi nhóm "khái niệm thừa kế" thành hai loại:
- Lớp dẫn xuất (con) - lớp kế thừa từ lớp khác
- Lớp cơ sở (cha mẹ) - lớp được kế thừa từ
Để kế thừa từ một lớp, hãy sử dụng ký hiệu :
.
Trong ví dụ bên dưới, lớp Car
(con) kế thừa các trường và phương thức từ lớp Vehicle
(cha):
Ví dụ
class Vehicle // base class (parent) { public string brand = "Ford"; // Vehicle field public void honk() // Vehicle method { Console.WriteLine("Tuut, tuut!"); } } class Car : Vehicle // derived class (child) { public string modelName = "Mustang"; // Car field } class Program { static void Main(string[] args) { // Create a myCar object Car myCar = new Car(); // Call the honk() method (From the Vehicle class) on the myCar object myCar.honk(); // Display the value of the brand field (from the Vehicle class) and the value of the modelName from the Car class Console.WriteLine(myCar.brand + " " + myCar.modelName); } }
Tại sao và khi nào nên sử dụng "Kế thừa"?
- Hữu ích cho khả năng sử dụng lại mã: sử dụng lại các trường và phương thức của một lớp hiện có khi bạn tạo một lớp mới.
Mẹo: Ngoài ra, hãy xem chương tiếp theo, Đa hình , chương này sử dụng các phương thức kế thừa để thực hiện các tác vụ khác nhau.
Từ khóa được niêm phong
Nếu bạn không muốn các lớp khác kế thừa từ một lớp nào đó, hãy sử dụng từ khóa sealed
:
Nếu bạn cố truy cập một lớp sealed
, C# sẽ phát sinh lỗi:
sealed class Vehicle { ... } class Car : Vehicle { ... }
Thông báo lỗi sẽ giống như thế này:
'Car': cannot derive from sealed type 'Vehicle'