Th hi n qua vi c có th đ nh nghĩa m t đ c tính, ho c ph ng th cể ệ ệ ể ị ộ ặ ặ ươ ứ
cho m t lo t các đ i t ng g n gi ng nhau. Nh ng khi th c hi n thì ộ ạ ố ượ ầ ố ư ự ệ
các đ i t ng khác nhau s có cách th c hi n khác nhau và cho ra k tố ượ ẽ ự ệ ế
qu khác nhau.ả
Tính đa hình (polymorphism) trong l p trình h ng đ i t ng cho ậ ướ ố ượ
phép các l p con có th vi t l i (override) các thu c tính ho c ớ ể ế ạ ộ ặ
ph ng th c t l p cha. Ví d : Đ i t ng “hình vuông” và “hình ươ ứ ừ ớ ụ ố ượ
tròn” có chung 1 ph ng th c là “chu_vi”. Khi g i ph ng th c này ươ ứ ọ ươ ứ
thì v i m i đ i t ng s có 1 công th c tính khác nhau và cho ra k t ớ ỗ ố ượ ẽ ứ ế
qu khác nhau. Trong PHP:ả
oCác l p con có th vi t l i ho c m r ng ph ng th c c a l pớ ể ế ạ ặ ở ộ ươ ứ ủ ớ
cha mà nó k th a.ế ừ
oCác class cùng implement m t interface nh ng chúng có cách ộ ư
th c th c hi n khác nhau cho các method c a interface đó.ứ ự ệ ủ
oQua đó cùng 1 ph ng th c s cho k t qu khác nhau khi đ cươ ứ ẽ ế ả ượ
g i b i các đ i t ng thu c l p khác nhau.ọ ở ố ượ ộ ớ
2. S khác bi t gi aự ệ ữ Abstract Class và Interface
Interface và Abstract class là 2 khái ni m c b n trong l p trình OOP. ệ ơ ả ậ
Nh ng phân l n m i ng i c m th y m h và l n l n 2 khái ni m này. ư ớ ọ ườ ả ấ ơ ồ ẫ ộ ệ
V y chúng là gì, khác nhau nh nào? T i sao dùng cái nàyậ ư ạ Interface mà
không ph iả Abstract và ng c l i ??? B qua t t c nh ng ph n v lý ượ ạ ỏ ấ ả ữ ầ ề
thuy t c a vi c t o m tế ủ ệ ạ ộ abstract class và interface. B n không c n quan ạ ầ
tâm nhi u đ n vi cề ế ệ abstract có th khai báo nh ng gì, hayể ữ interface có đ cượ
phép đ nh nghĩa n i dung ph ng th c hay không. Đi m c b n khi b n ị ộ ươ ứ ể ơ ả ạ
đ c h i v s khác bi t gi a chúng là gì? Đó chính là m c đích mà chúng ượ ỏ ề ự ệ ữ ụ
đ c s d ng: –ượ ử ụ Abstract class: là m t class cha cho t t c các class có ộ ấ ả
cùng b n ch t. B n ch t đây đ c hi u là ki u, lo i, nhi m v c a ả ấ ả ấ ở ượ ể ể ạ ệ ụ ủ
class. Hai class cùng hi n th c m tệ ự ộ interfacecó th hoàn toàn khác nhau v ể ề
b n ch t. Hi u đ n gi n nh m t th ng con (child class) ch có th là con ả ấ ể ơ ả ư ộ ằ ỉ ể