Abstraction de classe PHP

WBOY
Libérer: 2023-08-31 06:00:01
avant
1514 Les gens l'ont consulté

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{
   //
}
?>
Copier après la connexion

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
Copier après la connexion

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();
?>
Copier après la connexion

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)
Copier après la connexion

输出

这将产生以下输出 −

<?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);
?>
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal