About this Course An interface is a type of contract that assures that certain abilities are available on on a particular object class. We'll write and extend multiple interfaces, then implement them to design and match functionality. Interfaces do not store any implementation details themselves. To share implementation details between classes, we harness the power of inheritance. Abstract classes prevent a parent class from being directly instantiated, while at the same time defining methods that MUST be implemented in any extending children. This course will combine interface contracts with class hierarchy to leverage the benefits of each concept. We'll explain the differences between interfaces and abstract classes, and give you the knowledge you need to build and implement both in your own projects. What you'll learn: - Writing an Interface - Implementing Interfaces - Extending Interfaces - Matching Interfaces - Abstract Classes Introducing Interfaces An interface is a type of contract that assures that the enforces certain abilities are available on on a particular object class. Interfaces have continued to gain popularity in PHP as the use of package management through composer has become the standard. By having standard interfaces, package maintainers can more easily build and maintain packages for common tasks such as Logging, caching and http messages.