Автор оригинала: 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/”