ホームページ > バックエンド開発 > PHPチュートリアル > PHPオブジェクト指向開発におけるポリモーフィズムを詳しく解説_PHPチュートリアル

PHPオブジェクト指向開発におけるポリモーフィズムを詳しく解説_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:50:18
オリジナル
906 人が閲覧しました

この記事では、PHP オブジェクト指向開発におけるポリモーフィズムについて詳しく説明します。このチュートリアルが役立つことを願っています。

クラスのポリモーフィズム

1. ポリモーフィズムの概要と利点。
2. オペレーター: インスタンス。
3. ポリモーフィズムの単純な適用。

1. ポリモーフィズムの概要と利点

はじめに: ポリモーフィズムは、抽象化と継承に続くオブジェクト指向言語の 3 番目の機能です。

例: USB インターフェース、異なるものを接続すると、異なる機能が使用されます。

利点: OOP は単なる多くの関数や機能のコレクションではなく、クラス、継承、ポリモーフィズムを使用して私たちの生活の状況を記述することを目的としています。


2.オペレーター: インスタンス

PHP は、指定されたオブジェクトが指定されたオブジェクトに由来するかどうかを判断するために使用される型演算子です
形式:

コードは次のとおりです コードをコピー

クラス A {}
クラス B {}

$thing = 新しい A;
if ($thing instanceof A) {
「A」をエコーし​​ます;
}
if ($thing instanceof B) {
エコー「B」;
}

3. ポリモーフィズムの簡単な応用
例 1:

コードは次のとおりです コードをコピー

クラスA{

}

クラスB{

}

$new = 新しい A;

if ($新しいインスタンスオブ A) {
「A」をエコーし​​ます;
}
if ($new instanceof B) {
エコー「B」;
}
?>

例 2:

コードは次のとおりです コードをコピー

インターフェイス MyUsb {
関数タイプ();
関数alert();
}

クラス Zip は MyUsb を実装します {
関数タイプ() {
エコー「2.0」;
}
関数alert() {
echo "USB ドライブが検出中です...
";
}
}

クラス Mp3 は MyUsb を実装します {
関数タイプ() {
エコー「1.0」;
}
関数alert() {
echo "MP3 ドライバーが検出中...";
}
}

クラスMyPc {
関数 Add_Usb($what) {
$what->type();
$what->alert();
}

}
$p = 新しい MyPc();

$zip = 新しい Zip();

$mp3 = 新しい Mp3();

$p->Add_Usb($zip);
$p->Add_Usb($mp3);
?>

213.29.11.16アップデートの例を追加しました


<頭>

継承とポリモーフィズム


/* 親クラス */
クラスMyObject{
public $object_name //書籍名
public $object_price //書籍の価格
public $object_num //本の数
public $object_agio //予約割引
; function __construct($name,$price,$num,$agio){ //コンストラクター関数
$this -> オブジェクト名 = $name;
$this -> object_price = $price;
$this -> object_num = $num;
$this -> object_agio = $agio;
}
function showMe(){ // 出力関数
echo ' という文は表示されません。 ';
}
}
/* サブクラスブック */
class Book extends MyObject{ //MyObject のサブクラス。
public $book_type; // カテゴリ
function __construct($type,$num){ //コンストラクターメソッドを宣言します
$this -> book_type = $type;
$this -> object_num = $num;
}
function showMe(){ //親クラスの showMe メソッドを書き換えます
return '今回'.$this ->book_type.'Book'.$this->object_num.'this
';
}
}
/* サブクラス Elec */
class Elec extends MyObject{ //MyObject の別のサブクラス
function showMe(){ //親クラスの showMe メソッドを書き換えます
return '売れ筋の書籍:'.$this -> object_name.'
元の価格: '.$this -> object_price.'
特別価格: '.$this -> $this -> object_agio;
}
}
/* オブジェクトをインスタンス化します */
$c_book = new Book('Computer class',1000) // Book サブクラス オブジェクトを宣言します
; $h_elec = new Elec('PHP Function Reference Collection',98,3,0.8); //Elec サブクラス オブジェクトを宣言します
echo $c_book->showMe()."
" //Book サブクラスの showMe() メソッドを出力します
echo $h_elec->showMe(); //Elec サブクラスを出力する showMe() メソッド
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632641.html技術記事この記事では、PHP オブジェクト指向開発におけるポリモーフィズムについて詳しく説明します。このチュートリアルが役立つことを願っています。 クラス多態性 1. 多態性の概要と利点。 2.オペレーター...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート