Abstract Class in PHP

What is an abstract class in PHP and when to use an abstract class in your application? In this tutorial, we’ll learn about abstract class and their implementation.

Abstract Class in PHP

Abstract Class in PHP

Abstract Class in PHP

An abstract class is a class that contains at least one abstract method. An abstract method is simply a function definition without any actual code in it. An abstract method contains a method name and the parameters of a method with an abstract keyword at the beginning of a method.

An Abstract class acts as a blueprint for a class which inherits them. A child class which inherits an abstract class needs to implement their abstract methods. An abstract class is only created for an inheritance, it means you can’t create their object directly.

Magic methods in PHP

Important Points about Abstract Class

1. An Abstract Class cannot be instantiated, It means you cannot use them directly.

2. An abstract method should not be private.

3. When any child class inherits an abstract class then all the abstract methods in a parent class must be defined in a child class.

4.  An Abstract class can also have non-abstract (concrete) methods.

5. A class cannot extend multiple abstract classes but they can implement multiple interfaces.

Interfaces in PHP

When to use an Abstract Class in PHP

The real question is when to use an abstract class in an application.

Use an abstract class, when you need to implement a common functionality across multiple classes. In this way, your code is organized and well structured. The purpose of an abstract class is to provide some functionality and leave rest to the derived class.

** Apart from using abstract classes, You can also use PHP Traits and interface to make code reusable and well structured.

Abstract class vs interface

Example of Abstract Class

To understand this concept, let’s create an abstract class car. Every car has their own model type such as BMW, Swift, HondaCity etc. which they need to define. And each car shares some common functionality such as all car have four wheels.

Let’s create a class car. In a car class, I’ll create an abstract method modelType.

Every car has four wheels, so let’s define a concrete method wheelcount(). Every child class which inherits car class must define their own model type.

You can’t create an object of an abstract class directly. Let’s check what happens if we try to create an object of an abstract class.

$data = new car;

PHP Fatal error: Cannot instantiate an abstract class. 

Let’s create a child class, which inherits an abstract class.

Example 2  – Let’s take an another example to understand an abstract class.

Let’s create a circle class which extends an abstract class shape

Similarly, we can create another class square which can extend our shape class.

For more information, you can check php.net documentation.

Conclusion

By using an abstract class in your code, you can provide a blueprint for a child classes.

Tagged , , . Bookmark the permalink.

About WebRewrite

I am technology lover who loves to keep updated with latest technology. My interest field is Web Development.