RSS

Kế thừa trong C#

22 Dec

1. Khái niệm Kế thừa

– Kế thừa là khả năng cho phép định nghĩa một lớp mới kế thừa từ lớp cha

– Sau đó sẽ xây dựng thêm các phương thức và thuộc tính riêng của lớp đó

– Lớp cha trong sự thừa kế gọi là lớp cơ sở

– Lớp con trong sự thừa kế gọi là lớp dẫn xuất

– Quan hệ “là 1″: Kế thừa được sử dụng thông dụng nhất để biểu diễn quan hệ “là 1″

Ví dụ: Sinh viên là một con người

Tam giác là một đa giác

– Kế thừa thường được dùng theo 2 cách:

  • Để phản ánh mối quan hệ giữa các lớp
  • Để phản ánh sự chia sẻ mã nguồn giữa các lớp

2. Cú pháp

Cú pháp định nghĩa lớp dẫn xuất

class [Tên lớp con] : [Tên lớp cha]
{
}

3. Thừa kế phương thức

3.1. Phương thức tạo lập (Constructor)

– Vì lớp dẫn xuất không thể kế thừa phương thức tạo lập của lớp cơ sở nên một lớp dẫn xuất phải thực thi phương thức tạo lập riêng của mình

– Nếu lớp cơ sở có một phương thức tạo lập mặc định thì phương thức tạo lập của lớp dẫn xuất được định nghĩa như cách thông thường

– Nếu lớp cơ sở có phương thức tạo lập có tham  số thì lớp dẫn xuất phải định nghĩa phương thức  tạo lập có tham số theo cú pháp sau:

TênLớpCon(ThamSốLớpCon):base(ThamSốLớpCha)
{
// Khởi tạo giá trị cho các thành phần của lớp dẫn xuất
}

3.2. Định nghĩa lại các phương thức ở lớp dẫn xuất

– Trường hợp derived class có property or method trùng tên với base class thì trình biên dịch sẽ có cảnh báo dạng như sau:
“keyword new is required on ‘LớpDẫnXuất.X’ because it  hides inherited member on ‘LớpCơSở.X ‘”.

– Để khắc phục việc này ta dùng từ khóa newngay câu lệnh khai báo thành phần đó.

– Từ khóa new trong trường hợp này có tác dụng che dấu thành phần kế thừa đó đối từ base class

– Nếu phương thức của derived class  muốn truy cập đến thành phần X của base class ?

– Sử dụng từ khóa base theo cú pháp:  base.X

 

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

 
%d bloggers like this: