ホームページ  >  記事  >  バックエンド開発  >  PHP オブジェクト指向の継承、ポリモーフィズム、カプセル化の概要

PHP オブジェクト指向の継承、ポリモーフィズム、カプセル化の概要

小云云
小云云オリジナル
2018-03-02 09:49:152263ブラウズ

1. インターフェイス
PHP プログラミング言語では、インターフェイスは抽象型と抽象メソッドのコレクションです。インターフェイスは通常、interface として宣言されます。クラスは、インターフェイスを実装することによって、インターフェイスのメソッド (抽象メソッド) を実装します。

インターフェース定義:

interface InterAnimal{
        public function speak();
        public function name($name);
    }//接口实现
 class cat implements InterAnimal{
        public function speak(){
            echo "speak";
        }        public function name($name){
            echo "My name is ".$name;
        }
    }

特記事項:
* すべてのクラスは抽象メソッドです (抽象宣言は必要ありません)
*インターフェイスの抽象メソッドはパブリックです
※メンバー(フィールド)は定数である必要があります

2. 継承
他のクラスを継承したクラスをそのクラスのサブクラスと呼びます。この関係は、親と子の比喩でよく表されます。サブクラスは親クラスの特性を継承します。これらのプロパティは、プロパティとメソッドで構成されます。サブクラスは親クラスの機能を超えた新しい機能を追加できるため、サブクラスは親クラスの「拡張機能」とも呼ばれます。
PHP では、クラスの継承は extends キーワードを通じて実装されます。他のクラスを継承するクラスはサブクラスまたは派生クラスになり、サブクラスの継承元のクラスは親クラスまたは基本クラスになります。
すごい

特別な注意:

親クラスのフィールドとメソッドが必要ない場合があるため、サブクラスを書き換えることで親クラスのフィールドとメソッドを変更できます。

class Computer {
    private $_name = '联想';    public function __get($_key) {
        return $this->$_key;
    }    public function run() {
        echo '父类run方法';
    }
}class NoteBookComputer extends Computer {}$notebookcomputer = new NoteBookComputer ();$notebookcomputer->run ();  //继承父类中的run()方法echo $notebookcomputer->_name;  //通过魔法函数__get()获得私有字段

オーバーライドして親クラスのメソッドを呼び出す
場合によっては、オーバーライドされたメソッドを通じて親クラスのメソッドのコンテンツを呼び出すことができる必要があります。この場合、
を使用する必要があります。 構文: 親クラス名::method()、parent::method() を呼び出すことができます。

final キーワードにより、クラスが継承されないようにすることができます。単に独立したクラスになりたいだけで、他のクラスによって継承されたり使用されたりしたくない場合があります。


3. 抽象クラスとメソッド

抽象クラスの特徴:
* 抽象クラスはインスタンス オブジェクトを生成できず、継承のみが可能です。

* 抽象メソッドは抽象クラス内に存在する必要があり、抽象クラス内に抽象メソッドが存在することはできません。
* 継承 抽象クラスの場合、サブクラスは親クラスのすべての抽象メソッドをオーバーライドする必要があります。
* 抽象として定義されたメソッドは、その呼び出しメソッド (パラメーター) を宣言するだけで、実装しません。

class Computer {
    public $_name = '联想';    protected function run() {
        echo '我是父类';
    }
}//重写其字段、方法class NoteBookComputer extends Computer {
    public $_name = 'IBM';    public function run() {
        echo '我是子类';
    }
}

3. ポリモーフィズム
ポリモーフィズムとは、クラスが使用されるコンテキストに応じて OOP がクラスの性質や動作を再定義または変更できること、またはインターフェイスの複数の異なる実装がポリモーフィックであることを意味します。

abstract class Computer {
    abstract function run();}final class NotebookComputer extends Computer {
    public function run() {
        echo '抽象类的实现';
    }
}

関連する推奨事項:


PHP オブジェクト指向の識別オブジェクト

php オブジェクト指向プログラミングの開発アイデアと事例分析

PHP オブジェクト指向の実践的な基礎知識

以上がPHP オブジェクト指向の継承、ポリモーフィズム、カプセル化の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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