ホームページ  >  記事  >  バックエンド開発  >  抽象クラス、インターフェイス、特性

抽象クラス、インターフェイス、特性

不言
不言オリジナル
2018-04-04 14:00:221400ブラウズ

この記事は PHP の抽象クラス、インターフェイス、特性に関するものです。必要な友達はこの記事の内容を参照してください


マニュアル参照:http ://php.net/manual/zh/ language.oop5.abstract.php

定義:
PHP 5 は、抽象クラスと抽象メソッドをサポートします。抽象として定義されたクラスはインスタンス化できません。クラス内の少なくとも 1 つのメソッドが抽象宣言されている場合、クラスは抽象宣言されている必要があります。そして、

抽象クラスを継承する場合、サブクラスは親クラスですべての抽象メソッドを定義する必要があります (定数は抽象クラスで定義できます)。
<?php
abstract class AbstractClass
{
    const NAME=&#39;张三&#39;;
 // 强制要求子类定义这些方法
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);

    // 普通方法(非抽象方法)
    public function printOut() {
        print $this->getValue() . "\n";
    }
}

class ConcreteClass1 extends AbstractClass
{
    protected function getValue() {
        return "ConcreteClass1".self::NAME;
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass1";
    }
}


$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue(&#39;FOO_&#39;) ."\n";

トレイトは多重継承を実装します

参考アドレス


https://www.cnblogs.com/smallrookie/p/6516010.html

定義:

PHP 5から。 0 PHPを起動コードを再利用する新しい方法を実装します。


interface test1{

  function say();
}
interface test2{
  function see();

}

//接口继承接口 (继承接口时使用extends关键字)

interface test3 extends test1,test2
{
    function sleep();

}

//类实现接口(实现接口时使用 implements关键字)

class test implements test1,test2{
  public function say(){}
  public function see(){}
  public function sleep()
  {
    echo &#39;休息&#39;;
  }

}
//接口中只能有抽象方法(不能定义常量,不能有构造方法,不能有普通方法),且接口类中所有未实现的方法需要在子类中全部实现

関連する推奨事項:


PHP オブジェクト指向インターフェイス、継承、抽象クラス、破棄、クローン作成などの高度な機能の詳細な例

PHP インターフェイスの概要
特徴の共有PHP の Trait の関数と

以上が抽象クラス、インターフェイス、特性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。