How to Abstract Class in PHP

View: 479    Dowload: 0   Comment: 0   Post by: hanhga   Category: Php&mySql   Fields: Other

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

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 blue print for a class which inherit 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.

Important Points about an 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. An Abstract class does not support multiple inheritance.

Interfaces in PHP

When to use an Abstract Classes

The real question is when to use an abstract classes in a code.

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.

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

abstract class car{
 
   /* Abstract method, this must be define in child class. */
 
    abstract public function modelType(); 
 
   /* Concrete method, which is same in all classes. */
 
    public function wheelCount() {
 
      echo "I have four wheels";
    }
 
}

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

$data = new car;

PHP Fatal error: Cannot instantiate abstract class. So remember you can’t instantiate abstract classes.

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

class HondaCity extends car{
 
    public function modelType(){
        echo "HondaCity";
    }
}
 
$car = new HondaCity;
$car->modelType();
/* Common method, which can be accessed using a child class object. */
$car->wheelCount();

class Swift extends car {
 
 public function modelType() {
 echo "swift";
 }
}
 
$car = new Swift;
$car->modelType();
$car->wheelCount();
​Example 2  – Let’s take an another example to understand an abstract class
//An abstract class shape
 
abstract class Shape {
    
    abstract protected function getColor();
 
    abstract protected function setColor($color); 
   
    //Common method available for all the classes which extends shape class
    public function describe() {
        return sprintf("I'm an %s %s\n", $this->getColor(), get_class($this));
    }   
}

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

// Class square extends shape class
 
class Square extends Shape {
    
    private $color = null;
    
 
    public function getColor() {
        return $this->color;
    }   
    
    public function setColor($color) {
        $this->color = $color;
    }   
}
 
//Instantiate the Square class
 
$square = new Square();
 
//Set the color
$square->setColor('Orange');
 
// Print the description
echo $square->describe();

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.

How to 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.

Posted on 07-10-2016 

Comment:

To comment you must be logged in members.

Files with category

  • SimpleXML is a PHP extension that allows us to easily manipulate and get XML data

    SimpleXML is a PHP extension that allows us to easily manipulate and get XML data

    View: 283    Download: 0   Comment: 0

    Category: Php&mySql     Fields: none

    SimpleXML provides an easy way of getting an element's name, attributes and textual content if you know the XML document's structure or layout. SimpleXML turns an XML document into a data structure you can iterate through like a collection of arrays...

  • How to use the PHP download file script? Class Download PHP

    How to use the PHP download file script? Class Download PHP

    View: 186    Download: 1   Comment: 0

    Category: Php&mySql     Fields: Other

    This is my favorite PHP download script. I’ve used a different more simple method until a client wanted to be able to allow their site visitors to download a large file from a password protected directory. The PHP script works on Apache web servers...

  • Installing OCI8 & PHP 7.2 on RHEL or CentOS 6

    Installing OCI8 & PHP 7.2 on RHEL or CentOS 6

    View: 319    Download: 0   Comment: 0

    Category: Php&mySql     Fields: Other

    You’ll need to stop Apache (web server) using the following command. In any Linux commands I show in this article, it presumes you aren’t logged in as the root user, so you will need to use sudo to issue privileged commands.

  • PHP source code: get content of google search

    PHP source code: get content of google search

    View: 268    Download: 2   Comment: 0

    Category: Php&mySql     Fields: Other

    How to get the results of google search and display on your website. This PHP code can do that. Refer to the following code.

  • PHP as a Scripting Language for C#

    PHP as a Scripting Language for C#

    View: 199    Download: 0   Comment: 0

    Category: Php&mySql     Fields: none

    When creating .NET applications (including desktop and web applications), it may be useful to allow extending the application using some scripting language. The users of the application can write simple scripts to configure the application, modify...

  • How to Picking the Brains of Your Customers with Microsoft’s Text Analytics

    How to Picking the Brains of Your Customers with Microsoft’s Text Analytics

    View: 4284    Download: 0   Comment: 0

    Category: Php&mySql     Fields: Other

    With the explosion of machine learning services in recent years, it has become easier than ever for developers to create “smart apps”. In this article, I’ll introduce you to Microsoft’s offering for providing machine-learning capabilities to apps.

  • How to MySqli Tutorial PHP MySqli Extension

    How to MySqli Tutorial PHP MySqli Extension

    View: 592    Download: 0   Comment: 0

    Category: Php&mySql     Fields: Other

    PHP provides three api to connect mysql Database.

  • Make Laravel Artisan Commands

    Make Laravel Artisan Commands

    View: 546    Download: 0   Comment: 0

    Category: Php&mySql     Fields: Other

    Artisan is the command line tool used in Laravel framework. It offers a bunch of useful command that can help you develop application quickly. Apart from Artisan available commands, you can create your own custom commands to improve your workflow.

 
File suggestion for you
File top downloads
Codetitle - library source code to share, download the file to the community
Copyright © 2018. All rights reserved. codetitle Develope by Vinagon .Ltd