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 48 - 49)

khác nhau. Thí dụ Objects KháchHàng và NhânViên đều có Property Name. Nếu ta có thể lập trình để dùng Name mà khơng cần nói rõ nó thuộc về Object KháchHàng hay NhânViên thì đó là Polymorphism.

Polymorphism thể hiện dưới nhiều hình thức:

1. Late Binding (Hiệu lực trễ): Có nghĩa là đợi đến giờ chót, khi execution, thì code mới

biết nó đang làm việc với loại Object nào. Chữ binding nói đến "hiệu lực", late binding là có hiệu lực trễ. Điều nầy được thực hiện bằng cách hứa hẹn một Object thuộc Parent Class để trong lúc

runtime ta có thể giao cho code một Object thuộc Child Class. Thí dụ ta hứa với khán giả sẽ có một CaSĩ trình diễn, lúc mở màn ta có thể cung cấp một CaSĩTânNhạc hay một CaSĩCổNhạc.

hình 3.4 : Late binding

2. Overloading (Q tải, đã có rồi mà còn cho thêm) : Overloading cho phép ta viết

trong cùng một Class nhiều versions khác nhau của Property hay Method. Chúng được phân biệt nhờ dùng parameters khác data type hay con số parameters khác nhau. Thí dụ một version của Sub được passed cho một Integer Parameter, một version khác được passed cho một String Parameter, một version khác lại được passed cho hai parameters. Khi ta gọi một Method của Class, nó sẽ dựa vào data type của parameters ta pass và số parameters ta pass để execute đúng version của Method.

Một thí dụ về Overloading ngồi đời là khi ta yêu cầu CaSĩ đơn ca ta được phép đề nghị CaSĩ hát theo Karaoke, hay được Ban Nhạc Sống phụ họa, hay thêm cả một nhóm ca sĩ khác phụ họa .v.v..

3. Overriding (Lấn quyền) : Overriding áp dụng cho Child Class đối với Parent Class.

Trong Child Class ta cung cấp một Method cùng tên, cùng số parameters và cùng parameter data type với một Method trong Parent Class (ở đây khơng nhất thiết phải là Cha, có thể là ƠngNội hay nhiều đời trước) để dùng nó thay thế cho Parent Class Method. Ta nói Child Class thay đổi behaviour (tánh tình, cách xử sự) của Parent Class. Đại khái giống như cụ LữLiên trước đây Hát nhạc hài hước, bây giờ cô KhánhHà thừa kế từ cụ nhưng override Method Hát của cụ và cô implement một Method Hát mới dùng cho nhạc trử tình.

Lúc runtime, nếu một Object khơng có implementation của một Method thì CLR (Common Language Runtime) sẽ dùng Method của Parent Class của nó. Trong thí dụ trên vì cơ KhánhHà có một implementation cho method Hát nên system sẽ dùng method đó, thay vì dùng method Hát của cụ LữLiên.

Tạo một Class mới

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 48 - 49)