An interface allows users to create programs by defining public methods that a class must implement without affecting the intricacies and details of how specific methods are implemented. This is commonly referred to as the next level of abstraction. It resembles abstract methods, reminiscent of abstract classes. An interface is defined in the same way as a class is defined, but the class keyword is replaced with the interface keyword and only function prototypes. The interface contains no variable data. An interface is useful in the sense that it provides some sort of metadata support for all the methods the programmer wants to work on.
Create an interface Below is an example of how to define an interface using the
interface keyword.
interface
MyInterfaceName {
public
function
methodA();
public
function
methodB();
}
?>
Several interface characteristics: - An interface consists of methods that have no implementation, which means that interface methods are abstract methods.
- All methods in interfaces must have a common scope.
- Interfaces are different from classes since a class can only inherit from one class, whereas a class can implement one or more interfaces.
To implement an interface, use the implementerstatement as follows:
class
MyClassName
implements
MyInterfaceName {
p ublic
function
methodA() {
// method A implementation
}
public
function
methodB() {
// implementation of method B
}
}
?>
Specific class : class, which implements the interface is called a concrete class. It must implement all methods defined in the interface. Interfaces with the same name cannot be implemented due to an ambiguity error. Like any class, an interface can be extended using the extendsstatement as follows:
interface
MyInterfaceName1 {
public
function
methodA();
}
interface
MyInterfaceName2
extends
MyInterfaceName1 {
public
function
methodB();
}
?>
Example :
interface
MyInterfaceName {
public
function
method1();
public
function
method2();
}
class
MyClassName
implements
MyInterfaceName {
public
function
method1() {
echo
"Method1 Called"
.
""
;
}
public
function
method2() {
echo
"Method2 Called"
.
""
;
}
}
$obj
=
new
MyClassName;
$obj
-> method1();
$obj
-> method2();
?>
Exit:Method1 Called Method2 Called
Benefits of the PHP interface - The interface allows unrelated classes to implement the same set of methods regardless of their position in the class inheritance hierarchy .
- An interface can model multiple inheritance because a class can implement more than one interface, whereas it can only extend one class.
- Implementing inheritance will save the caller from fully implementing the object’s methods and focus only on the object interface, so the caller’s interface remains the same.