ホームページ >バックエンド開発 >PHPの問題 >PHPでポリモーフィズムを実装する方法

PHPでポリモーフィズムを実装する方法

青灯夜游
青灯夜游オリジナル
2021-06-02 15:24:354439ブラウズ

ポリモーフィズムを実現するための PHP メソッド: 1. インターフェイスを実装することでポリモーフィズムを実装します; 2. インターフェイスと組み合わせを使用して、別のクラスを 1 つのクラスの属性として設定し、多重継承をシミュレートし、継承関係を通じて多重継承を実現します。 。

PHPでポリモーフィズムを実装する方法

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

ポリモーフィズムとは、同じ操作または関数を指します。プロシージャはさまざまなタイプのオブジェクトに作用し、さまざまな結果を得ることができます。同じメッセージを受信したときに、オブジェクトが異なれば結果も異なる場合があり、この現象はポリモーフィズムと呼ばれます。

ポリモーフィズムにより、各オブジェクトはそれ自体に適した方法で共通のメッセージに応答できます。ポリモーフィズムにより、ソフトウェアの柔軟性と再利用性が向上します。

オブジェクト指向ソフトウェア開発において、ポリモーフィズムは最も重要な部分の 1 つです。オブジェクト指向プログラミングは、単に関連するメソッドやデータを組み合わせるだけではなく、オブジェクト指向プログラミングのさまざまな要素を使用して、現実のさまざまな状況を明確に記述します。このセクションでは、オブジェクト指向プログラミングにおけるポリモーフィズムについて詳しく説明します。

ポリモーフィズムとは

ポリモーフィズム(Polymorphism)とは文字通り「複数の形状」を意味します。これは、「1 つの外部インターフェイスと複数の内部実装メソッド」という複数の表現形式として理解できます。オブジェクト指向理論におけるポリモーフィズムの一般的な定義は、「同じ操作が異なるクラスのインスタンスに適用されると、異なる実行結果が生成される」というものです。つまり、異なるタイプのオブジェクトが同じメッセージを受信すると、異なる結果が得られます。

実際のアプリケーション開発において、オブジェクト指向ポリモーフィズムを使用する主な目的は、異なるサブクラス オブジェクトを 1 つの親クラスとして扱うことができ、異なるサブクラス オブジェクト間に存在する差異をシールドできることです。コードを作成し、変化するニーズに適応する共通のプログラミングを作成します。

ポリモーフィック実装条件

ポリモーフィック実装には 3 つの条件があります。 まず、継承がなければなりません。つまり、親が存在する必要があります。 class (または基本クラス) とその派生サブクラス。次に、親クラスからサブクラスのオブジェクトを指す参照が存在する必要があります。これはポリモーフィズムを実現するための最も重要な条件です。最後に、メソッドの書き換えが必要です。つまり、サブクラスは、必要に応じて親クラスのメソッドの一部を書き換える必要があります。メソッド名とパラメーターは同じです。

#php でポリモーフィズムを実現する方法:

1. インターフェイスを実装してポリモーフィズムを実装します

次の例では、UserAdmin クラスの静的メソッドには User type パラメーターが必要です。

その後の使用では、User インターフェイスを実装する NormalUser クラスのインスタンスが渡されます。コードは正常に実行されます。

<?
interface User{ // User接口
	public function  getName();
	public function setName($_name);
}
class NormalUser implements User { // 实现接口的类.
	private $name;
	public function getName(){
		return $this->name;
	}
	public function setName($_name){
		$this->name = $_name;
	}
}
class UserAdmin{ //操作.
	public static function  ChangeUserName(User $_user,$_userName){
		$_user->setName($_userName);
	}
}
$normalUser = new NormalUser();
UserAdmin::ChangeUserName($normalUser,"Tom");//这里传入的是 NormalUser的实例.
echo $normalUser->getName();
?>

プログラムの実行結果:

Tom

2. 継承関係によるポリモーフィズムの実装

インターフェイスと組み合わせを使用して、あるクラスに別のクラスを追加します。属性として設定して多重継承をシミュレートし、継承関係を通じてポリモーフィズムを実現します。

クラスとサブクラスの関係は次のとおりです。

<?
class User{ // User接口
	public function  getName(){}
}
class NormalUser extends User { // 继承自User类
	private $name;
	public function getName(){
		return $this->name;
	}
	public function setName($_name){
		$this->name = $_name;
	}
}
class UserAdmin{ //操作.
	public static function  ChangeUserName(User $_user,$_userName){
		$_user->setName($_userName);
	}
}
$normalUser = new NormalUser();
UserAdmin::ChangeUserName($normalUser,"Tom");//这里传入的是 NormalUser的实例.
echo $normalUser->getName();
?>

プログラムの実行結果:

Tom

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPでポリモーフィズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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