Bài 14: Override và Overload trong PHP

Override và Overload trong php
Trong OOP, overriding và overloading là 2 kỹ thuật giúp tạo nên Tính đa hình (Polymorphism), một trong những sức mạnh của lập trình hướng đối tượng. Bài viết này chúng ta sẽ tìm hiểu về khái niệm, cách dùng và tác dụng của 2 kỹ thuật nêu trên.
Trong phạm vi bài viết này chúng ta chỉ để cập đến 2 kỹ thuật này trong Method. Trong lập trình, chúng ta không thể nào khai báo các function (method) trùng tên, nhưng trong OOP chỉ cần áp dụng hai kỹ thuật này, chúng ta hoàn toàn có thể làm được điều đó.
1-Overriding(ghi đè)
Khi sử dụng Overriding, bạn đã thay đổi hành vi của method mà nó override. Nói đơn giản là nó đã ghi đè nội dung lên method trước đó. Lưu ý, method này phải được khai báo giống hệt method trước cả đối số và kiểu trả về.
– Overriding thường được sử dụng trong method ở lớp con.
Trong PHP, nếu như người lập trình tạo ra một phương thức trong lớp con có trùng tên với một phương thức đã được tạo ở lớp cha thì đó được gọi là ghi đè phương thức(Method Overriding).
Một số quy tắc sử dụng phương thức overriding:
• Các phương thức được mô tả static thì không overriden nhưng được mô tả lại.
• Khi đối tượng thuộc lớp con gọi phương thức thì sẽ chọn lựa và chạy theo phương thức trong lớp con.
• Nếu lớp con không có phương thức đó thì mới lên kiếm ở lớp cha để chạy
• Ghi đè là hình thức đa hình (polymorphism) trong quá trình thực thi (Runtime)
• Là Phương thức đã xuất hiện ở lớp cha và xuất hiện tiếp ở lớp con.
• Các phương thức không kế thừa sẽ không được overriden (hiển nhiên).
• Chỉ có thể override các phương thức không phải final (java) được khai báo là public hoặc protected.
• Các hàm tạo không thể overriden.
Ví dụ về override:

2-Overloading(Nạp chồng)
Overloading đơn giản chỉ để tạo ra các method cùng tên trong cùng một Class. Nhưng các method đó phải khác nhau về đối số đầu vào (argument) hoặc kiểu trả về.
– Các method với kỹ thuật này không ghi đè mà cùng tồn tại song song.
Ví dụ về overload:

Vì vậy ta có thể hiểu rằng overloading là static (easy binding) polymorphism và overriding là dynamic (late binding) polymorphism.
Tham khảo thêm về Override và Overload trong PHP tại
http://php.net/manual/en/language.oop5.overloading.php
http://en.wikipedia.org/wiki/Function_overloading
http://en.wikipedia.org/wiki/Method_overriding
nguồn: http://www.techflirt.com

You may also like...

1 Response

  1. long says:

    thiếu code hilight nhé

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">