Giới thiệu kế thừa
Kế thừa là một trụ cột khác trong thế giới lập trình hướng đối tượng. Bạn có thể sử dụng tính kế thừa như một khía cạnh của việc sử dụng lại mã bằng cách xác định các lớp khác nhau sẽ chứa các tính năng chung và có mối quan hệ với nhau. Một ví dụ có thể là nhân viên dưới dạng phân loại chung và có thể chứa người quản lý, nhân viên không quản lý và bất kỳ phân loại nhân viên nào khác.
Xem xét việc tạo một ứng dụng để mô phỏng một không gian làm việc văn phòng bao gồm tất cả các nhân viên. Sau đó xem xét các tính năng phổ biến mà tất cả các phân loại nhân viên đã theo sau bởi một danh sách các thuộc tính khác nhau cho từng loại nhân viên. Ví dụ, tất cả họ có thể có số nhân viên, tên và địa chỉ, địa chỉ, v.v., nhưng người quản lý có trách nhiệm khác với các phân loại nhân viên khác.
Kế thừa cho phép bạn tạo một lớp cơ sở chứa các thuộc tính cốt lõi, được chia sẻ và sau đó mỗi lớp nhân viên khác nhau sẽ thừa hưởng toàn bộ các thuộc tính này mở rộng chúng cho các nhu cầu đặc biệt của riêng họ. class kế thừa từ lớp cơ sở được gọi là lớp dẫn xuất nhưng cũng thường được gọi là lớp con. Khi sử dụng lớp con thuật ngữ, một số người cũng gọi lớp cơ sở là một siêu lớp. Trong các ngôn ngữ lập trình như Objective-C, điều này được củng cố bằng cách sử dụng các câu lệnh như ví dụ này trong đó từ khóa super được sử dụng để khởi tạo một tệp nib trong một siêu lớp;
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
Hãy xem xét sơ đồ class UML đơn giản hóa sau đây làm ví dụ.
Áp dụng kế thừa
Áp dụng kế thừa
Ngôn ngữ lập trình C# không hỗ trợ trực tiếp nhiều kế thừa. Đa kế thừa là một khái niệm theo đó nhiều lớp cơ sở có thể được kế thừa bởi một lớp con duy nhất. Trong C#, một lớp dẫn xuất chỉ có thể có một lớp cơ sở.
Để kế thừa từ lớp cơ sở trong C#, bạn nối thêm tên lớp dẫn xuất của bạn bằng dấu hai chấm và tên của lớp cơ sở. Ví dụ sau đây cho thấy lớp Manager quản lý lớp cơ sở của nhân viên từ sơ đồ UML của chủ đề trước.
class Manager : Employee
{
private char payRateIndicator;
private Employee[] emps;
}
Định nghĩa lớp đơn giản này trong C# liệt kê lớp từ khóa theo sau là tên lớp Manager, dấu hai chấm và sau đó là base class Employee. Nhìn vào đoạn mã này, chúng tôi không thể biết lớp Manager được thừa hưởng từ Employee, vì vậy chúng tôi sẽ cần xem xét lớp đó để hiểu tất cả các thuộc tính có sẵn cho chúng tôi. class nhân viên được hiển thị ở đây:
class Employee
{
private string empNumber;
private string firstName;
private string lastName;
private string address;
public string EmpNumber
{
get
{
return empNumber;
}
set
{
empNumber = value;
}
}
public string FirstName
{
get
{
return firstName;
}
set
{
firstName = value;
}
}
public string LastName
{
get
{
return lastName;
}
set
{
lastName = value;
}
}
public string Address
{
get
{
return address;
}
set
{
address = value;
}
}
}
Khi làm việc trong Visual Studio, tính năng Intellisense sẽ cung cấp cho bạn hình ảnh đại diện của các thành viên được kế thừa. Ví dụ, nếu chúng ta khởi tạo một đối tượng thuộc loại Manager trong mã của mình và sau đó sử dụng ký hiệu dấu chấm để hiển thị danh sách các thuộc tính cho lớp Manager, chúng ta cũng sẽ thấy các thuộc tính từ Employee lớp cơ sở trong danh sách đó như tốt. Điều này được hiển thị trong hình ảnh sau đây:
إرسال تعليق