ホームページ > php教程 > php手册 > PHP オブジェクト指向ガイド (15) ポリモーフィック アプリケーション

PHP オブジェクト指向ガイド (15) ポリモーフィック アプリケーション

WBOY
リリース: 2016-06-13 12:21:35
オリジナル
962 人が閲覧しました

ポリモーフィズムの応用
ポリモーフィズムは、カプセル化と継承に加えてオブジェクト指向の 3 つの主要な機能の 1 つですが、私の個人的な意見では、ポリモーフィズムは PHP で実現できますが、これらのオブジェクトと比較すると、C や Java とは異なります。 PHP
自体は弱い型付け言語であるため、親クラス オブジェクトからサブクラス オブジェクトへの変換、またはサブクラス オブジェクトから親クラス オブジェクトへの変換が行われないため、ポリモーフィズムはそれほど顕著ではありません。ポリモーフィズムはそれほど明白ではありません。いわゆるポリモーフィズムは、複数の種類の
オブジェクトを処理できるプログラムの機能を指します。たとえば、会社で働いている場合、財務部門は同じ給与支払い方法で毎月賃金を支払います。 、会社内のさまざまな従業員またはさまざまな役職の従業員はすべてこの方法で支払われますが、支払われる賃金は異なります。
つまり、賃金を支払う同じ方法がさまざまな形で現れるのです。オブジェクト指向プログラムのポリモーフィズムは、サブクラスのオブジェクト
を親クラスの参照に代入し、親クラスのメソッドを呼び出して、親クラスをオーバーライドしてサブクラスのメソッドを実行することですが、PHP では
弱く型付けされたオブジェクト参照は、親クラス参照またはサブクラス参照に関係なく同じです。
例を見てみましょう。まず、ポリモーフィズムを使用するには、親クラス オブジェクトとサブクラス オブジェクトの間に関係が必要です。
シェイプ インターフェイスまたは抽象クラスを親クラスとして作成します。その中には 2 つの抽象メソッドがあり、1 つは境界を見つけるもので、もう 1 つは
領域を見つけるものです。このインターフェイスにはさまざまなサブクラスがあります。形状の場合、各形状には外周と領域があり、親クラスはインターフェイスであるため、サブクラスは親クラスの外周と領域の 2 つの抽象メソッドを実装する必要があります。そのため、
の目的は、異なる形状の各サブクラスが親クラスインターフェイスの仕様に準拠しており、周囲長と面積を計算するメソッドを備えています。
コード スニペット



コードをコピー

コードは次のとおりです: <//?形状インターフェイスには、サブクラスを実装するための 2 つの抽象メソッドがあります。

interface Shape{

function area();
}
// 長方形のサブクラスを定義します。形状インターフェイスの周囲と領域
クラス Rect は Shape{
private $width;
private $height;
function __construct($width, $height){
$this -> ;width=$width;
$this->height=$height;
}
function area(){
return "長方形の面積は次のとおりです。" -> ;width*$this->height);
}
function perimeter(){
return "長方形の周囲長は次のとおりです。".(2*($this->width $ this-> ;height));
}
}
//形状インターフェイスに周囲と面積を実装する円形のサブクラスを定義します。
class Circularimplements Shape{
private $radius;
function __construct($radius){
$this->radius=$radius;
}
function area(){
return "円の面積は次のとおりです。" .(3.14 *$this->radius*$this->radius);
}
function perimeter(){
return "円の周長は次のとおりです。".(2*3.14* $this- >radius);
}
}
// サブクラスの四角形オブジェクトをシェイプの参照に割り当てます
$shape=new Rect(5, 10); $shape- >area()."
";
echo $shape->perimeter()."
// サブクラスの円形オブジェクトを参照に代入します。形状
$shape=new Circular(10);
echo $shape->area()."
";
echo $shape->perimeter()."; br> ";
?>


上記例の実行結果:
実行結果
長方形の面積: 50
長方形は: 30
円 形状の面積: 314

円の周囲長: 62.8
上記の例を通して、長方形オブジェクトと円形オブジェクトが次のとおりであることがわかります。実際、これは、PHP のような弱い
型のオブジェクト指向言語では、ポリモーフィック アプリケーションです。明らかに、ポリモーフィック機能は特別なものではなく、実際にはオブジェクト型変数の変数
アプリケーションです。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート