Heim  >  Artikel  >  Backend-Entwicklung  >  Schnittstelle in PHP

Schnittstelle in PHP

无忌哥哥
无忌哥哥Original
2018-06-28 15:13:472107Durchsuche

* Schnittstelle

* 1. Verwenden Sie Schlüsselwörter: Schnittstelle

* 2. Klasse ist die Vorlage des Objekts und die Schnittstelle ist die Vorlage der Klasse

* 3. Schauen Sie sich die Schnittstelle an. Es handelt sich um eine spezielle Klasse

* 4. Die Methoden in der Schnittstelle werden nur deklariert, aber nicht implementiert, genau wie abstrakte Klassen

* 5. Die Methoden in Die Schnittstelle muss öffentlich sein und Statik unterstützen

* 6. Klassenkonstanten const können in der Schnittstelle deklariert werden, dürfen aber nicht von Klassen oder Unterschnittstellen überschrieben werden

* 7. Verwenden Sie das Schlüsselwort „implements“, um eine Schnittstelle mit einer Klasse

* 8 zu implementieren. Eine Klasse kann mehrere Schnittstellen implementieren, getrennt durch Kommas

* 9. Das Schlüsselwort „extends“ kann auch zum Erben zwischen Schnittstellen verwendet werden

* 10. Eine Klasse kann mehrere Schnittstellen haben. Bei Verwendung einer Schnittstelle dürfen Methoden nicht denselben Namen haben.

//Deklarieren Sie die Schnittstelle: Animal

if (!interface_exists('Animal')) {
    interface Animal
    {
        //接口常量
        const status = 'viable'; //能存活的
        
        //接口方法:饲养时吃什么
        public function feeding($foods);
    }
}
//声明类Cat,并实现接口Animal
if (interface_exists('Animal')) {
    class Cat implements Animal
    {
        private $name = '猫';
        
        //在类中必须实现接口中的方法feeding()
        public function feeding($foods)
        {
            return $this->name.'吃'.$foods;
        }
    }
}
//实例化Dog类,
echo (new Cat())->feeding('老鼠');
echo &#39;<hr>&#39;;
//再定义一个接口:动物的特性
if (!interface_exists(&#39;Feature&#39;)) {
    interface Feature
    {        
        //接口方法
        public function hobby($hobby);
    }
}
//声明一个类Dog,实现了二个接口: Animal,Feature
if (interface_exists(&#39;Animal&#39;) && interface_exists(&#39;Feature&#39;)) {
    class Dog implements Animal, Feature
    {
        private $name = &#39;狗&#39;;
        
        //必须实现接口Animal中的feeding()方法
        public function feeding($foods)
        {
//            return $this->name.&#39;吃&#39;.$foods;
            //改成链式
            echo  $this->name.&#39;吃&#39;.$foods;
            return $this;
        }
        
        //必须实现接口Feature中的hobby()方法
        public function hobby($hobby)
        {
//            return $hobby;
            
            //改成链式
            echo $hobby;
            return $this;
        }
    }
}

//Instanziieren Sie die Hundeklasse

echo (new Dog())->feeding(&#39;肉&#39;);
echo (new Dog())->hobby(&#39;忠诚,勇敢,不离不弃~~&#39;);

//Überlegen Sie, wie Sie die beiden oben genannten kombinieren können. Ändern Sie einen Methodenaufruf in eine Kette?

//Hinweis: Kommentieren Sie zuerst die obige Instanziierungsaufrufanweisung aus, andernfalls die folgende Kette Anruf wird nicht wirksam

(new Dog)->feeding(&#39;骨头&#39;)->hobby(&#39;,可爱,温顺,听话~~&#39;);

Das obige ist der detaillierte Inhalt vonSchnittstelle in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:abstrakte Klasse in PHPNächster Artikel:abstrakte Klasse in PHP