PHP中的抽象类跟接口
很多东西不经常用就会忘记,当你去面试的时候别人问的细你会发懵,这里稍微总结下:
一、什么是抽象类
抽象类其实跟父类的方法有点类似,避免子类重复写一些功能,只需要继承这个类就拥有了父类的所有方法,不同的是抽象类会去定义抽象方法,子类继承的时候必须实现抽象方法,因此适用于一些有固定规范的情形
二、抽象类特性
1、不能直接实例化,必须先继承,然后再实例化子类
2、抽象类至少要包含一个以上的abstract方法,这些方法就是子类必须要实现的方法,其他的方法子类直接继承,可以覆盖
// 强制要求子类定义这些方法 abstract protected function getValue(); abstract protected function prefixValue($prefix); // 普通方法(非抽象方法) public function printOut() { print $this->getValue(); }
3、子类必须实现抽象类中定义的抽象方法,并且方法的可见性必须和抽象类中一样(或者更为宽松)。如果抽象类中某个抽象方法被声明为protected,那么子类中实现的方法就应该声明为protected或者public,而不 能定义为private
三、什么是接口类
接口是一种规范,他不去定义方法的实现,只要求我这些接口必须被实现,具体怎么实现是你的事
四、接口类的特性
1、接口类的所有方法都只包含声明(方法名称跟入参),不能包含方法体
interface SyncAccountInterface{ public function syncLogin($userId); public function checkUsername($username, $randomName = '');}
2、接口类的所有方法都必须在实现接口类的方法中都实现,,少一个实现就会报错
3、一个类可以实现多个接口,接口可以解决类的继承不能继承多个类的问题
五、抽象类跟接口类的异同
1、抽象类跟接口类都包含了子类必须去实现的方法,不同的是抽象类还可以包括其他方法子类不用去实现,直接继承或覆盖这些方法,但标识为abstract的方法必须去实现。接口类不同,里面所有的方法子类必须去实现。
2、一个类只能继承一个类,但可以实现多个接口,因此在不同的使用场合我们需要抽象类,也需要接口,根据使用场合定

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



Alipay PHP...

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,

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

Article discusses essential security features in frameworks to protect against vulnerabilities, including input validation, authentication, and regular updates.

The article discusses adding custom functionality to frameworks, focusing on understanding architecture, identifying extension points, and best practices for integration and debugging.

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

An official introduction to the non-blocking feature of ReactPHP in-depth interpretation of ReactPHP's non-blocking feature has aroused many developers' questions: "ReactPHPisnon-blockingbydefault...
