Maverick 외부인 - PHP 인터페이스

autoload
풀어 주다: 2023-04-09 19:58:02
원래의
2632명이 탐색했습니다.

php의 클래스는 다중 상속을 허용하지 않지만 인터페이스다중 상속이 가능합니다. code>캡슐화 특정 구현은 특정 구현 세부 사항을 외부에 노출하지 않고 인터페이스만 노출하며 사용자는 인터페이스를 통해서만 액세스할 수 있으므로 어느 정도의 보안도 있습니다. php中的类是不允许多继承的,而接口可以多继承,其次使用接口可以封装具体的实现,不向外部暴露具体的实现细节,只将接口暴露出来,用户也只能够通过接口访问,这样也有一定的安全性。

    1.定义:接口,使用interface关键字定义,与类类似,专门用来规范一些共性类必须实现的方法。

interface People{}
로그인 후 복사

2.接口实现:接口是用来规范类必须完成的事情,所以接口只能被类实现:implements。(不允许实例化)

class Man implements People{}
로그인 후 복사

3 .接口成员:接口中只能定义公有抽象方法接口常量

interface Animal{
    
    const NAME = '人';//只允许有接口常量

    public function eat();//接口方法必须为公有抽象方法
}
로그인 후 복사

4.接口的实现类必须实现所有的抽象方法或者实现类为抽象类接口常量可以直接在实现类中访问

interface Animal{
    const NAME = '人';
    public function eat(); 
}

//实现接口
class Man implements Animal{
    //必须实现接口所有抽象方法
    public function eat(){
        echo self::NAME;				//可以访问接口常量
    }
}

//抽象类实现接口
abstract class Ladyboy implements Animal{}		//正常实现
로그인 후 복사

5.实现接口的类成员不允许重写接口中的常量,不允许增加接口方法的控制权限

interface Animal{
    const NAME = '人';
    public function eat(); 
}
class Woman implements Animal{
    //重写接口常量
    const NAME = '女人';			  //错误:不允许重写接口常量
    
    //强化接口方法控制
    private function eat(){}		//错误:接口方法不允许使用其他访问修饰限定符,必须使用public
}
로그인 후 복사

6.接口可以继承接口extends 1. 정의

: 인터페이스 키워드를 사용하여 정의된 인터페이스는 클래스와 유사하며 특히 일부 공통 클래스에서 구현해야 하는 메서드를 표준화하는 데 사용됩니다.

interface Plant{
    public function lightning();
}

interface Animal{
    public function eat();
}
//单继承
interface Man extends Animal{}
//多继承
interface Apple extends Plant,Animal{}
로그인 후 복사
2. 인터페이스 구현: 인터페이스는 클래스가 수행해야 하는 작업을 표준화하는 데 사용되므로 인터페이스는 구현 클래스에 의해서만 구현될 수 있습니다. (인스턴스화는 허용되지 않음) 🎜rrreee🎜 🎜3. 인터페이스 멤버🎜: 인터페이스에서는 공용 추상 메소드인터페이스 상수만 정의할 수 있습니다. 4. 인터페이스 구현 클래스는 모든 🎜추상 메서드를 구현해야 합니다. 🎜또는 구현 클래스는 🎜추상 클래스입니다. 🎜인터페이스 상수는 구현 클래스에서 직접 액세스할 수 있습니다. 🎜 🎜rrreee🎜 🎜 5. 인터페이스를 구현하는 🎜클래스 멤버는 🎜인터페이스의 상수를 재정의할 수 없으며 인터페이스 메서드의 제어 권한을 늘릴 수 없습니다🎜🎜rrreee 🎜 🎜 6. 인터페이스는 인터페이스를 상속할 수 있습니다🎜: extends, 🎜그리고 인터페이스는 여러 인터페이스를 상속할 수 있습니다🎜🎜rrreee🎜권장: 🎜php 비디오 튜토리얼🎜🎜

위 내용은 Maverick 외부인 - PHP 인터페이스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿