Interface:
قابلیت ها و چارچوب های یک کلاس را مشخص میکند خودش کلاس نیست بلکه
یه جور قرار داده
Interface به معنی رابط هستش
نکته مهم : وقتی یک کلاس از یک Interface ارثبری میکند، باید همهٔ متدهای موجود در Interface را پیادهسازی کند، در غیر این صورت خطا رخ میدهد.
یه Interface، میتونه یک یا مجموعهای از متدها (بدون بدنه) باشه که باید در کلاسهایی که از آن ارثبری میکنند، پیادهسازی شود.
نکته دوم : Interface میتواند همزمان از چند کلاس ارث بری کند
interface Animal { public function makeSound();//متد بدون بدنه} class Cat implements Animal { public function makeSound() { echo "Meow!" } } class Dog implements Animal { public function makeSound() { echo "Woof!" } } $cat = new Cat(); $cat->makeSound(); //Meow! $dog = new Dog(); $dog->makeSound(); //Woof!
حالا فرق ایمپلمنت با اکستند چیه؟
ایمپلمنت فقط مال اینترفیسه
و اینکه هیچ عملیات خاصی نداره چون متد هاش بدون بدنه هستن و فرایند ارث بریش فقط متدشه و تمام
ولی اکستند میاد عملیماتی وارد میشه و از اون عملیاتی که توی بدنه اون متد ها انجام میشه استفاده میکنه
و همچنین چایلد ها قابلیت اوررایت متد های پرنت رو دارن
```
interface UserInterface {public function getName();public function getEmail()}class User implements UserInterface public function getName() { return $this->name; } public function getEmail() { return $this->email; } }