Maison  >  Article  >  développement back-end  >  Abstraction de classe PHP

Abstraction de classe PHP

WBOY
WBOYavant
2023-08-30 23:17:061460parcourir

Abstraction de classe PHP

Introduction

En programmation orientée objet, une classe abstraite est celle qui peut être instanciée, c'est-à-dire qu'il n'est pas possible de déclarer un objet d'une telle classe. PHP prend en charge le concept de classe abstraite depuis la version 5.0

Une classe définie avec le mot-clé abstract devient une classe abstraite. De plus, toute classe contenant au moins une méthode abstraite est également considérée comme abstraite.

<?php
class testclass{
   //
}
?>

méthode abstraite

Méthode abstraite déclare uniquement sa signature, c'est-à-dire sa visibilité, ses arguments et son type de retour avec des indications de type et n'a aucune fonctionnalité. Une classe qui hérite d'une telle classe abstraite doit remplacer (fournir une définition) toutes les méthodes abstraites. La méthode correspondante dans la classe enfant doit porter la même signature que dans la classe parent. Si la classe enfant ne remplit pas cette condition, l'analyseur PHP lève une exception. Une classe qui étend une classe abstraite peut désormais être instanciée, c'est pourquoi elle est appelée classe concrète

Dans l'exemple suivant, la classe parent a deux méthodes abstraites, dont une seule est redéfinie dans la classe enfant. Cela entraîne l'erreur suivante −

Exemple

 Démo en direct

$a=new testclass();
PHP Fatal error: Uncaught Error: Cannot instantiate abstract class testclass

Output

Voici le message d'erreur

<?php
abstract class testclass{
   abstract function test1();
   abstract function hello();
}
class myclass extends testclass{
   function test1(){
      echo "Overrides parent test method";
   }
}
$a=new myclass();
?>

Méthode abstraite avec arguments

Lorsque la méthode abstraite est définie avec des arguments, elle doit être remplacée dans la classe enfant avec même nombre d'arguments

Dans l'exemple suivant, la méthode abstraite de la classe parent a deux arguments. La classe enfant définit également la même fonction avec deux arguments

Exemple

 Live Demo

PHP Fatal error: Class myclass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (testclass::hello)

输出

这将产生以下输出 −

<?php
abstract class testclass{
   abstract function hello($name, $age);
}
class myclass extends testclass{
   function hello($name, $age){
      echo "My name is $name and my age is $age";
   }
}
$a=new myclass();
$a->hello("Ravi",20);
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer