Las clases abstractas son las clases en las que al menos un método es abstracto. A diferencia de C++, las clases abstractas en PHP se declaran con la ayuda de una palabra clave abstracta. El uso de clases abstractas es que todas las clases base que implementan esta clase deben implementar los métodos abstractos declarados en la clase principal. Una clase abstracta puede contener métodos abstractos y no abstractos.
<?php // Abstract class example in PHP abstract class base { // This is abstract function abstract function printdata(); // This is not abstract function function pr() { echo "Base class"; } } ?>
Los siguientes son algunos datos importantes sobre las clases abstractas en PHP.
- Al igual que Java, PHP tampoco puede crear una instancia de clase abstracta.
Ejemplo:
<?php
// Abstract class
abstract
class
Base {
// This is abstract function
abstract
function
printdata();
}
class
Derived
extends
base {
function
printdata() {
echo
"Derived class"
;
}
}
// Uncommenting the following line will
// cause compiler error as the line tries
// to create an instance of abstract class.
// $b = new Base();
$b1
=
new
Derived;
$b1
->printdata();
?>
Producción:Derived class
- Al igual que C++ o la clase abstracta de Java en PHP, también puede contener un constructor.
Ejemplo:
<?php
// Abstract class
abstract
class
Base {
function
__construct() {
echo
"this is abstract class constructor "
;
}
// This is abstract function
abstract
function
printdata();
}
class
Derived
extends
base {
function
__construct() {
echo
"\n Derived class constructor"
;
}
function
printdata() {
echo
"\n Derived class printdata function"
;
}
}
$b1
=
new
Derived;
$b1
->printdata();
?>
Producción:Derived class constructor Derived class printdata function
- A diferencia de Java, no se puede crear una clase abstracta que no contenga al menos un método abstracto en PHP. Si ejecutamos el siguiente ejemplo, mostrará un mensaje de error.
Ejemplo:
<?php
// example to understand that an abstract
// class can not contain an method with
// body in php
abstract
class
Base {
abstract
function
printdata() {
echo
"Parent class printdata"
;
}
}
?>
Errores de tiempo de ejecución:
PHP Fatal error: Abstract function Base::printdata() cannot contain body in /home/a7540402ade5337d505a779cf4797b38.php on line 7
Publicación traducida automáticamente
Artículo escrito por ankit15697 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA