PHP | Interface

An Interface allows the users to create programs, specifying the public methods that a class must implement, without involving the complexities and details of how the particular methods are implemented. It is generally referred to as the next level of abstraction. It resembles the abstract methods, resembling the abstract classes. An Interface is defined just like a class is defined but with the class keyword replaced by the interface keyword and just the function prototypes. The interface contains no data variables. The interface is helpful in a way that it ensures to maintain a sort of metadata for all the methods a programmer wishes to work on.

Creating an Interface

Following is an example of how to define an interface using the interface keyword.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php 
  
interface MyInterfaceName {
   public  function methodA();
   public  function methodB();
  
?>

chevron_right


Few characteristics of an Interface are:

  • An interface consists of methods that have no implementations, which means the interface methods are abstract methods.
  • All the methods in interfaces must have public visibility scope.
  • Interfaces are different from classes as the class can inherit from one class only whereas the class can implement one or more interfaces.

To implement an interface, use the implements operator as follows:



filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
class MyClassName implements MyInterfaceName{
   public  function methodA() { 
  
     // method A implementation
   
   public  function methodB(){ 
  
     // method B implementation
   
}
  
?>

chevron_right


Concrete Class: The class which implements an interface is called the Concrete Class. It must implement all the methods defined in an interface. Interfaces of the same name can’t be implemented because of ambiguity error. Just like any class, an interface can be extended using the extends operator as follows:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php 
  
interface MyInterfaceName1{
  
    public  function methodA();
   
}
  
interface MyInterfaceName2 extends MyInterfaceName1{
  
    public  function methodB();
}
  
?>

chevron_right


Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php 
  
interface MyInterfaceName{
  
    public function method1();
    public function method2();
  
}
  
class MyClassName implements MyInterfaceName{
  
    public function method1(){
        echo "Method1 Called" . "\n";
    }
  
    public function method2(){
        echo "Method2 Called". "\n";
    }
  
$obj = new MyClassName;
$obj->method1();
$obj->method2();
  
?>

chevron_right


Output:

Method1 Called
Method2 Called

Advantages of PHP Interface

  • An interface allows unrelated classes to implement the same set of methods, regardless of their positions in the class inheritance hierarchy.
  • An interface can model multiple inheritances because a class can implement more than one interface whereas it can extend only one class.
  • The implementation of an inheritance will save the caller from full implementation of object methods and focus on just he objects interface, therefore, the caller interface remains unaffected.



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


5


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.