ホームページ  >  記事  >  バックエンド開発  >  PHP クラスでのポリモーフィズムの適用_PHP チュートリアル

PHP クラスでのポリモーフィズムの適用_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:10:081049ブラウズ

PHP チュートリアル クラスでのポリモーフィズムの適用

Instanceof: 指定されたオブジェクトが指定されたオブジェクト クラスに由来するかどうかを判断するために使用されます

クラス A{}

クラス B{}

$thing=new A();

//return true

if ($thing instanceof A) {

echo 'A';

}

//return false

if ($thing instanceof B) { Echo 'B'; UTF-8");

インターフェース MyUsb{

function type();

functionalert();

}

class Zip は MyUsb{

function type(){

echo " 2.0 " を実装します;

}

functionalert(){

echo "USB ドライブをチェックしています";

}

}

class Mp3 は MyUsb{

function type(){

echo "1.0"; $what->type ();

$what->alert();

$pc->PcUsb($zip);//USB ディスクが接続されているとき

エコー "< br/>";

$pc->PcUsb($mp3);/ /MP3 が接続されているとき

?>

実行結果:

2.0 は U ディスクドライバーをチェックしています

1.0 はチェックしていますMP3 ドライバー

オブジェクト参照は、親クラス参照、子クラス参照、クラス参照に関係なく同じです。 次に例を見てみましょう。まず、ポリモーフィズムを使用するには、親クラス オブジェクトとサブクラス オブジェクトの間に関係が必要です。シェイプ インターフェイスまたは抽象クラスを親クラスとして作成します。その中には 2 つの抽象メソッドがあり、1 つは境界を見つけるもの、もう 1 つは領域を見つけるものです。このインターフェイスのサブクラスはさまざまなシェイプであり、それぞれが Shape です。 perimeter と area があり、親クラスがインターフェイスであるため、サブクラスは親クラスの perimeter と area の 2 つの抽象メソッドを実装する必要があります。これは、サブクラスがそれぞれ異なる形状にすべて準拠するようにするためです。親クラスのインターフェースの仕様に準拠し、周囲長と面積を計算するメソッドを備えています。

コードは次のとおりです:

// サブクラスが実装する 2 つの抽象メソッドを含むシェイプ インターフェイスを定義します。

interface Shape{

function area();

// A長方形のサブクラスは、形状インターフェイスの周囲と領域を実装するために定義されています。 width;

$this->height=$height;

}

function area(){

return "長方形の面積は次のとおりです。".($this->width*$this->height) ;

}

function perimeter(){

return "長方形の周囲長は次のとおりです:".(2*($this->width+$this->height));

}

}

//円を定義します。このクラスは、形状インターフェイスに境界と領域を実装します。

class Circular は、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); ;area( )."
";

echo $shape->perimeter()."
";

//サブクラスの円形オブジェクトをシェイプの参照に代入します

$shape=new Circular (10 );

echo $shape->area()."
";

echo $shape->perimeter()."
"; の実行結果上記例:

実行結果

長方形の面積:50

長方形の周囲長:30

円の面積:314

円の周囲長:62.8

上の例では、長方形のオブジェクトと円形のオブジェクトが分離されていることがわかります。変数 $shape に代入すると、$shape 参照内の area メソッドと perimeter メソッドが呼び出され、異なる結果が表示されます。私たちの PHP はオブジェクト指向の弱い型ですが、ポリモーフィズムの特徴は実際にはオブジェクト型変数の適用です。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444751.html技術記事 PHP チュートリアルのポリモーフィック アプリケーション class Instanceof: 指定されたオブジェクトが指定されたオブジェクト クラスからのものであるかどうかを判断するために使用されます?php class A{} class B{} $thing=new A() //return true if ($thing instance.. .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。