Рубрики
Uncategorized

Примеры базового использования абстрактных классов PHP

Автор оригинала: David Wong.

Эта статья иллюстрирует базовое использование абстрактных классов PHP. Поделитесь для вашей справки следующим образом:

php
// The abstract class is like a template for subclass extension (rewriting). There are common methods (method bodies) and abstract methods in the abstract class, in which the abstract method has no method bodies and ends with a semicolon.
// As long as there is an abstract method, this class must be defined as an abstract class.
// An abstract class cannot create its own instance, and when it tries to create an abstract class object, it generates an error.
// Implementing methods of abstract classes in subclasses is equal to and higher than the visibility of abstract methods, abstract classes (public | protected | private), and subclasses (public | public, protected | have fatal errors and cannot be inherited).
// abstract classes cannot define private methods, but can define private attributes.
// If subclasses do not extend (rewrite) the abstract methods of abstract classes, errors will occur.
abstract class Employees{
  protected $name = null;
  function __construct($nameStr){
    $this->name = $nameStr;
  }
  abstract public function work();
  public function work1(){
    echo "

$this->name

"; } //function __destruct(){} } class Managers extends Employees{ public function __construct($nameStr){ parent::__construct($nameStr); } /*public function work(){// If subclasses do not extend (rewrite) the abstract methods of abstract classes, errors will occur. echo "

$this->name is working

"; }*/ } // $obj1 = new Employees (); // When creating abstract class objects, a resulting error occurs. $obj2 = new Managers('e2'); //$obj2->work();

При выполнении приведенного выше кода появится следующее сообщение об ошибке:

Фатальная ошибка: Менеджеры классов содержат 1 абстрактный метод и поэтому должны быть объявлены абстрактными или реализовать остальные методы (Сотрудники::работа) в D:\phproot\test\ClassDemo.php на линии 26

После удаления позиции запроса об ошибке и комментария с кодом конечной позиции замените ее следующим кодом:

name = $nameStr;
  }
  abstract public function work();
  public function work1(){
    echo "

$this->name

"; } //function __destruct(){} } class Managers extends Employees{ public function __construct($nameStr){ parent::__construct($nameStr); } public function work(){// If subclasses do not extend (rewrite) the abstract methods of abstract classes, errors will occur. echo "

$this->name is working

"; } } // $obj1 = new Employees (); // When creating abstract class objects, a resulting error occurs. $obj2 = new Managers('e2'); $obj2->work();

Результаты испытаний:

e2 работает

Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Введение в объектно-ориентированное программирование Php, Введение в Навыки работы с массивами PHP, Введение в базовую грамматику PHP, Краткое описание работы PHP и использования операторов, Краткое описание использования строк Php, Введение в работу с базой данных php+mysql и Общие операции с базами данных php. Краткое изложение навыков письма ___________

Я надеюсь, что эта статья будет полезна для разработки программ на PHP для всех.

Оригинал: “https://developpaper.com/examples-of-basic-usage-of-php-abstract-classes/”