Home > Web Front-end > JS Tutorial > Object Composition and Abstractions in OOP

Object Composition and Abstractions in OOP

王林
Release: 2024-07-29 12:44:33
Original
562 people have browsed it

Object Composition and Abstractions in OOP

Object composition and abstraction are fundamental concepts in PHP object-oriented programming (OOP).

Object Composition:

Object composition is a technique where an object is made up of one or more other objects. This allows for:

  • Code reuse
  • Easier maintenance
  • More flexibility

In PHP, object composition is achieved by including one class within another using a property or method.

Abstraction:

Abstraction is the concept of showing only the necessary information to the outside world while hiding the internal details. In PHP, abstraction is achieved using:

  • Abstract classes
  • Interfaces
  • Encapsulation (access modifiers)

Abstraction helps to:

  • Reduce complexity
  • Improve code organization
  • Increase flexibility

An example of object composition and abstraction in PHP is:

<?php 

// Abstraction
abstract class Vehicle {
  abstract public function move();
}

// Object Composition
class Car {
  private $engine;

  public function __construct(Engine $engine) {
    $this->engine = $engine;
  }

  public function move() {
    $this->engine->start();
    echo "Car is moving";
  }
}

class Engine {
  public function start() {
    echo "Engine started";
  }
}

$car = new Car(new Engine());
$car->move();
Copy after login

In this example, the Car class is composed of an Engine object, demonstrating object composition. The Vehicle abstract class provides abstraction, hiding the internal details of the move method from outside.

I hope that you have clearly understood it.

The above is the detailed content of Object Composition and Abstractions in OOP. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template