


What is the difference between abstract classes and interfaces in PHP
Difference: 1. Abstract classes can have attributes and ordinary methods, but interfaces cannot; 2. There may not be abstract methods in abstract classes, but there must be "abstract" methods in interfaces; 3. Syntax: Different; 4. The abstract class is declared before the class with the abstract keyword, and the class is declared as a class. The interface is declared with interface, but cannot be declared with class; 5. The abstract method of the abstract class must be declared with abstract. Interfaces are not required; 6. Abstract classes and interfaces implement detailed methods in different ways.
The operating environment of this tutorial: Windows 7 system, PHP 8 version, DELL G3 computer.
The difference between abstract classes and interfaces in PHP:
Abstract class: is based on a class, which itself is a class, just a Special classes cannot be directly instantiated. Methods and attributes can be defined in the class. Similar to templates, after specification, subclasses can implement detailed functions.
Interface: Mainly based on method specifications, a bit like abstract methods in abstract classes, except that it is more independent than abstract methods. A class can be combined into a new class by combining multiple methods.
The similarities between abstract classes and interfaces:
1. They are both used to declare a certain thing, standardize names and parameters, and form modules. There is no detailed description. Implementation details.
2. Relevant detailed work is implemented through classes.
3. Grammatically, the abstract method of an abstract class is the same as an interface and cannot have a method body, that is, the {} symbol
4. Inheritance can be used. Interfaces can inherit interfaces to form new interfaces, and abstract classes can inherit abstract classes to form new abstract classes.
The difference between abstract classes and interfaces:
1. Abstract classes can have attributes and ordinary methods, but interfaces cannot have attributes and ordinary methods. They can have constants.
2. Abstract classes may not have abstract methods, but interfaces must. There will be "abstract" methods
3. The syntax is different
4. The abstract class is declared before the class with the abstract keyword, and the class is declared as a class, and the interface is declared with interface , but cannot be declared with class, because the interface is not a class.
5. The abstract method of an abstract class must be declared with abstract, but the interface does not need to be
6. An abstract class uses the extends keyword to allow the subclass to inherit the parent class. Classes implement detailed abstract methods. The interface uses implements to allow ordinary classes to implement detailed methods of the interface in the class, and the interface can implement multiple methods at one time. Use commas to separate each interface.
Each feature:
There may not be abstract methods in abstract classes, but classes with abstract methods must be in abstract classes
In abstract classes, even if They are all specific methods and cannot be instantiated. Only by creating a new class to inherit can the instance inherit the class.
Interface allows a class to implement multiple different methods at one time
The interface itself is abstract, but note that it is not an abstract class, because the interface is not a class, but its methods are abstract. Therefore, it is also abstract
Application and combination:
The following code is based on my own thinking and has not been applied in actual development. It's just that this way of writing is a bit strange. Let abstractions and interfaces combine.
1. The combination of abstract classes and interfaces
<?php /* 写此程序源于自己的猜测,想在抽象类里实现某一接口。 */ interface work{ public function say(); } abstract class a implements work{ public function showlove(){ echo 'love you<br />'; } } class b extends a{ public function say(){ echo 'hello, i m in b'; } } $k=new b(); $k->say(); /* 以上程序能正常执行 普通类implements接口后,就变成了抽象类了,这就好像是直接给抽象类增加了一个抽象方法。 */
2. The combination of interfaces and inheritance
The parent class is an ordinary Class, after the subclass inherits, the interface is implemented in the subclass at the same time.
Question: Does this approach make sense? Is there such an application in actual development?
<?php interface kk{ public function say(); } class a { public function show(){ echo '我是父类<br />'; } } class b extends a implements kk{ public function say(){ echo '我是继承A类,同时实现say接口的<br />'; } } $b=new b(); $b->show();//我是父类 $b->say();//我是继承A类,同时实现say接口的
Related video recommendations: PHP programming from entry to proficiency
The above is the detailed content of What is the difference between abstract classes and interfaces in PHP. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
