Inheritance (Thừa Kế)

Một phần của tài liệu Giáo trình Lập trình mạng nâng cao hướng.NET (Nghề Lập trình máy tính): Phần 1 - Tổng cục dạy nghề (Trang 47 - 48)

một cách an tồn, tức là khơng sợ Methods của các Objects giẫm chân lên nhau.

Giả sử ta muốn dùng lại một Class để làm một Class mới, đặc biệt hơn, thí dụ như ta muốn làm nên một Class CaSĩ từ Class NghệSĩ. Cách làm ấy gọi là Inheritance (Thừa kế). Công việc thừa kế nầy được thực hiện qua một quá trình gọi là Subclassing.

Ở đây ta dùng lại Class NghệSĩ mà hồn tồn khơng đụng đến Source Code (Nguồn Mã) của Class NghệSĩ. Nguyên tắc ấy gọi là Reusability (Dùng lại). Lưu ý là nếu ta dùng lại Source code mà có sửa đổi một chút trong Source Code thì khơng thể gọi là Reuse được vì có thể việc sửa đổi Source Code đó sẽ gây ra bugs mới. Ta phải chỉ cần Inherit từ Object Code của một Class cũng được thì mới thật sự là Reuse.

Ta dùng Inheritance để cho thêm các Class Members, tức là thêm đặc tính và chức năng. Thí dụ NghệSĩ thì có Property TâmHồn (NhạyCảm (Sentitive) , ThơMộng (Romantic),...), và

Methods KýTênLưuNiệm, TrìnhDiễn. Class CaSĩ sẽ giữ y các đặc tính và chức năng ấy và

thêm Sub ĐơnCa, Function HátNhạcYêuCầu, .v.v..

Tương tự như vậy, ta cũng có thể thừa kế từ Class NghệSĩ để tạo ra Class HọaSĩ. Class HọaSĩ sẽ giữ y các đặc tính và chức năng của Class NghệSĩ nhưng thêm Function VẽChânDung,

Sub TrangTrí.

Trong thí dụ nói trên, người ta gọi Class NghệSĩ là Parent Class, Super Class hay Base

hình 3.3 : inheritance

Nếu ta lại Inherit Class CaSĩ để tạo ra Class CaSĩTânNhạc và Class CaSĩCổNhạc thì trong trường hợp nầy CaSĩ là Parent Class và CaSĩTânNhạc với CaSĩCổNhạc là Child Classes. Mỗi Casĩ là một NghệSĩ nên ta có mối liên hệ "IS (Là)" giữa hai classes nầy. Nó khác với mối liên hệ "HAS (Có)". Thí dụ nếu trong Class CaSĩ có một Object thuộc Class ĐầuBếp, thì một CaSĩ có thể cho ta một bữa ăn ngon nhưng khơng hẳn cho chính CaSĩ nấu. Nó giống như ngồi đời CaSĩ KhánhHà mướn một đầu bếp để đãi khách. Ta sẽ nói Class CaSĩ có mối liên hệ HAS

(Có) với Class ĐầuBếp trong trường hợp nầy, chớ không phải Class CaSĩ IS (Là) một Class

ĐầuBếp.

Trong .NET ta chỉ có Single (Đơn) Inheritance, tức là một Class không thể Inherit từ hai hay ba Classes khác. Giống như nói Con thừa kế từ Cha và Cha thừa kế từ ƠngNội, khơng có nhắc gì đến Mẹ hay BàNội. Một Child Class chỉ có một Parent Class, ngược lại, một Parent Class có thể có nhiều Child Classes.

Polymorphism (Đa dạng)

Một phần của tài liệu Giáo trình Lập trình mạng nâng cao hướng.NET (Nghề Lập trình máy tính): Phần 1 - Tổng cục dạy nghề (Trang 47 - 48)

Tải bản đầy đủ (PDF)

(86 trang)