f. Tính đa hình
Polymorphism là một từ Hi-Lạp có nghĩa là “đa hình”. Do đó, khi một thao tác đ−ợc thực thi trên một đối t−ợng, phụ thuộc vào kiểu của đối t−ợng thao tác quyết định tới dạng thức của đối t−ợng.
Với đa hình, một lớp con có thể sửa đổi hoặc bổ sung các thuộc tính nó kế thừa. Một lời gọi ph−ơng thức có thể cho các kết quả khác nhau, điều này phụ thuộc vào kiểu (lớp) của đối t−ợng nhận lời gọi. Một lời gọi bị quá tải khi nó gọi các thao tác khác nhau tới các đối t−ợng của các lớp khác nhau. Ví dụ, trong hình 1.11 đối t−ợng của các lớp Circle, Rectangle và Square đều hiểu và phản hồi lời gọi ph−ơng
các lớp cha định nghĩa các thuộc tính chung các lớp con kế thừa các thuộc tính của lớp cha (tái sử dụng) các lớp con cụ thể hoá lóp cha (tái sử dụng)
Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ
Luận văn tốt nghiệp thạc sỹ Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo
ứ ứứ
ứng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Web
19
thức FindArea nh−ng thuật toán để thực hiện tính toán cho mỗi lớp là khác nhau. Do đó, lời gọi FindArea đ−ợc coi là quá tải.
Một lớp nạp chồng sự thực thi của một ph−ơng thức cụ thể khi thao tác đ−ợc kế thừa từ lớp cha của nó không phù hợp. Trong hình 1.11 lớp Square đ kế thừa ph−ơng thức FindArea từ lớp cha của Square, đó là lớp Rectangle. Ph−ơng thức FindArea của lớp Rectangle tính diện tích bằng cách sử dụng thuật toán “height- times-width” (cao nhân rộng), còn đối với hình vuông thì tính diện tích bằng cách bình ph−ơng chiều rộng của nó lại hiệu quả hơn. Do đó lớp Square không sử dụng ph−ơng thức FindArea kế thừa từ lớp Rectangle mà thực hiện nạp chồng lớp đó.