Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; WP_MatchesMapRegex has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-includes/class-wp.php on line 632

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Translation_Entry has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-includes/pomo/entry.php on line 14

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_Reader has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-includes/pomo/streams.php on line 12

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_FileReader has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-includes/pomo/streams.php on line 120

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_StringReader has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-includes/pomo/streams.php on line 175

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_CachedFileReader has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-includes/pomo/streams.php on line 221

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_CachedIntFileReader has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-includes/pomo/streams.php on line 236

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; WP_Widget_Factory has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-includes/widgets.php on line 544

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzAdSense has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/easy-adsense-lite.php on line 38

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzAdsWidget has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/easy-adsense-lite.php on line 941

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzAdsSearch has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/easy-adsense-lite.php on line 1003

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzAdsLU has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/easy-adsense-lite.php on line 1078

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzBaseOption has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 22

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzCheckBox has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 174

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzRadioBox has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 199

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzSelect has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 250

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzMessage has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 294

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzHelpTag has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 313

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzHelpPopUp has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 328

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzTextArea has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 346

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzText has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 366

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzSubmit has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 385

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzColorPicker has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 409

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzOneTab has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 432

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; EzMiniTab has a deprecated constructor in /var/www/phpcoban.com/public_html/wp-content/plugins/easy-adsense-lite/EzOptions.php on line 476
Bài 14: Override và Overload trong PHP - PHP Cơ Bản

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="">