Maison >développement back-end >Problème PHP >Quelles sont les différences entre les classes abstraites et les interfaces en php

Quelles sont les différences entre les classes abstraites et les interfaces en php

王林
王林original
2020-11-05 14:10:161843parcourir

Les différences entre les classes abstraites et les interfaces en PHP sont : 1. Les classes abstraites peuvent avoir des attributs et des méthodes communes, tandis que les interfaces ne peuvent pas avoir d'attributs et de méthodes communes. 2. Les classes abstraites n'ont pas nécessairement de méthodes abstraites et d'interfaces ; do Il existe des méthodes abstraites ; 3. Les méthodes abstraites des classes abstraites doivent être déclarées abstraites, mais pas les interfaces.

Quelles sont les différences entre les classes abstraites et les interfaces en php

Les similitudes entre les classes abstraites et les interfaces :

(vidéo recommandée : tutoriel vidéo Java)

1. Ils sont tous utilisés pour déclarer une certaine chose, standardiser les noms et les paramètres et former des modules. Il n'y a pas de détails d'implémentation détaillés.

2. Le travail détaillé pertinent est implémenté à travers les classes

3. Grammaticalement, la méthode abstraite d'une classe abstraite est la même qu'une interface et ne peut pas avoir de corps de méthode, c'est-à-dire le {. Symbole {}

4. L'héritage peut être utilisé. Les interfaces peuvent hériter d'interfaces pour former de nouvelles interfaces, et les classes abstraites peuvent hériter de classes abstraites pour former de nouvelles classes abstraites. interfaces :

1. Les classes abstraites peuvent avoir des attributs, des méthodes ordinaires et des méthodes abstraites, mais les interfaces ne peuvent pas avoir d'attributs, de méthodes ordinaires et peuvent avoir des constantes

2. dans les classes abstraites, mais il doit y avoir une méthode ""Abstraite"

3. La syntaxe est différente

4. La classe abstraite est déclarée avant la classe avec le mot-clé abstract, et la classe est déclarée en tant que classe. L'interface est déclarée avec interface, mais elle ne peut pas utiliser la classe pour la déclarer, car les interfaces ne sont pas des classes.

5. La méthode abstraite d'une classe abstraite doit être déclarée avec abstract, mais l'interface n'a pas besoin de l'être

6. Une classe abstraite utilise le mot-clé extends pour permettre à la sous-classe d'hériter. la classe parent. Les classes implémentent des méthodes abstraites détaillées. L'interface utilise des implémentations pour permettre aux classes ordinaires d'implémenter des méthodes détaillées de l'interface dans la classe, et l'interface peut implémenter plusieurs méthodes à la fois. Utilisez des virgules pour séparer chaque interface

Leurs caractéristiques respectives :

<.>Les classes abstraites ne peuvent pas avoir de méthodes abstraites, mais les classes avec des méthodes abstraites doivent être des classes abstraites

Dans les classes abstraites, même si ce sont toutes des méthodes concrètes, elles ne peuvent pas être instanciées. hériter Ce n'est qu'alors que l'instance peut hériter de la classe

L'interface permet à une classe d'implémenter plusieurs méthodes différentes à la fois

L'interface elle-même est abstraite, mais notez que ce n'est pas une classe abstraite, parce que l'interface n'est pas une classe, son approche est simplement abstraite. C’est donc aussi abstrait.

Recommandations associées :

formation php

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:
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