ホームページ  >  記事  >  バックエンド開発  >  PHP学習メモ オブジェクト指向における[インターフェース]と[ポリモーフィズム]の応用_PHPチュートリアル

PHP学習メモ オブジェクト指向における[インターフェース]と[ポリモーフィズム]の応用_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:28:06784ブラウズ

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

/* インターフェース技術
*
* インターフェースは特別な抽象クラスであり、抽象クラスは特別なクラスです
*
* インターフェースと抽象クラスは同じ機能を持っています
*
* なぜなら、PHP では、抽象クラスを使用する場合、その抽象クラスを実装するサブクラスは他のクラスを継承できません。
*
* 一部の仕様を実装し、他のクラスを継承したい場合。インターフェースを使用するだけです。
*
* インターフェイスと抽象クラスの比較
*
* 1. 機能は同じですが、どちらもオブジェクトを作成できず、どちらも実装するにはサブクラスが必要です
*
* 2. インターフェイスの宣言は抽象クラスの宣言とは異なりますクラス
*
* 3. インターフェイスはさまざまな方法で実装されます
*
* 4. インターフェイス内のすべてのメソッドは抽象メソッドである必要があり、抽象メソッドのみを宣言できます (抽象変更を使用する必要はありません)
*
* 5.インターフェイス内のメンバー属性は定数のみ宣言できます
*
* 6. インターフェイス内のメンバーのアクセス権はパブリックである必要があり、抽象クラス内の最も低い権限は保護されます
*
* インターフェイスを宣言します。 : インターフェイス インターフェイス名 { };
*
* 7. クラスを使用する インターフェイスを実装するには、extends を使用する代わりに、implements キーワードを使用します
*
* サブクラスが親インターフェイスの抽象メソッドをオーバーライドする場合は、implements を使用します(実装)、クラスインターフェイス、抽象クラスインターフェイス useimplements、インターフェイス - インターフェイスは extends (継承) を使用します
*
* 抽象クラスを使用してインターフェイス内のいくつかのメソッドを実装できます
* サブクラスにオブジェクトを作成したい場合は、インターフェイス内のすべてのメソッドを実装する必要があります
* 別のインターフェイスを継承するインターフェイスを定義できます
* クラスは複数のインターフェイスを実装できます (複数の仕様に従ってサブクラスを開発)。カンマを使用して複数のインターフェイス名を区切ります
* クラスは 1 つのクラスを継承できます同時に 1 つ以上のインターフェイスを実装します
*
*implements を使用する 2 つの目的:
*
* 1. 複数のインターフェイスを実装できますが、extends ワードは 1 つの親クラスのみを継承できます
*
* 2. を使用しないextends という単語は、クラスを継承できるので、同時に 2 つ使用することができます
*
* ポリモーフィズム: ポリモーフィズムは、オブジェクト指向の 3 つの主要な機能の 1 つです
*
* 「ポリモーフィズム」は、オブジェクトの重要な機能です「ポリモーフィズム」とも呼ばれる動的バインディング関数の力を実証する、 - 指向の設計。ポリモーフィック機能により、ソフトウェアは開発およびメンテナンス中に完全な拡張を実現できます。実際、ポリモーフィズムの最も直接的な定義は、継承関係を持つ異なるクラスのオブジェクトが同じ名前のメンバー関数を呼び出し、異なる反応を生成できるようにすることです。
*
*
*
*
*
*/
//宣言インターフェース
interface デモ{
const HOST="localhost"
const USER="admin";// 追加する必要はありません宣言メソッドは abstract です。デフォルトは次のとおりです。権限は public
function fun2();
//インターフェース
interface Demo2 の継承 Demo {
function fun4();
interface Demo3{
function fun6; ();
}
interface Demo4{
function fun7();
}
echo Demo::HOST;//インターフェース内の定数にアクセスできます
class Hello{
function fun8(){
}
}
/ /Sub クラスはインターフェイス内のすべてのメソッドを実装する必要があります
class UTest extends Helloimplements Demo2, Demo3, Demo4 { //複数のインターフェイスを実装します
function fun1(){
}
function fun2(){
}
function fun3(){
}
関数 fun4(){
}
関数 fun5(){
}
関数 fun6(){
}
関数 fun7(){
}
}
/*---------- --------------- ------ポリモーフィズム--------------*/
interface Test{
function fun1(); fun2();
}
クラス 1 は Test{
function fun1(){
echo "aaaaaaaa";
}
function fun2(){
echo "bbbbbbbbbbbb"
}
}
class 2 は Test{
function を実装しますfun1(){
echo "11111111";
}
function fun2(){
echo "2222222222";
}
}
//同じインターフェースが同じメソッド、異なるオブジェクト、異なる出力を実装します。これはポリモーフィズムの性能と応用です
$test=new One;
$test->fun1();//a 行を出力
$test->fun2();//b 行を出力
$test =new Two;
$test->fun1();//1 行を出力
$test->fun2();//2 行を出力
/* ------ --------ポリモーフィック アプリケーションの例は、USB デバイスの使用をシミュレートします------*/
//USB インターフェイス
interface USB{
function mount();//USBをマウントするメソッド
function work();//USBを動作させるメソッド
function unmount();//USBをアンマウントするメソッド
}
//USBデバイスを定義する U disc
class Upan は USB を実装します{//USB インターフェイスを実装します
function mount(){
echo "U ディスクが正常にロードされました
";
}
function work(){
echo "U ディスクが開始されましたworking
";
}
function unmount(){
echo "U ディスクが正常にアンインストールされました
";
}
}
//USB デバイスを定義します USB マウス
クラス Umouse は USB を実装します。 /USB インターフェースを実装します
function mount(){
echo "USB キーボードが正常にロードされました
";
function work(){
echo "USB キーボードが動作し始めました
"; unmount() {
echo "USB キーボードが正常にアンインストールされました
"
}
}
//コンピューター クラスを定義します
class Computer{
//USB デバイスの使用方法
function useUSB ($usb){/ /$ usb パラメータは、どの USB デバイスを使用するかを示します
$usb->mount();//デバイスのマウント メソッドを呼び出します
$usb->work();//デバイスの動作メソッドを呼び出します
$usb->unmount( );//デバイスのアンインストールメソッドを呼び出す
}
}
//コンピュータのユーザークラスを定義する
class PcUser{
//USB をインストールするメソッド
function install(){
//まずコンピューターを用意します
$pc=new Computer;
//USB デバイスをいくつか持ってきます
$up=new Upan;//USB フラッシュ ドライブを持ってきます
$um=new Umouse;//USB マウスを持ってきます
// USB デバイス コンピューター、コンピューター内の USB デバイスを使用する方法を使用して、挿入するデバイスを呼び出します
$pc->useUSB($up);//U ディスクを挿入します
$pc->useUSB($um) ;//USB マウスを挿入します
}
}
//コンピュータ ユーザーをインスタンス化します
$user=new PcUser;//デバイスをインストールします
/*------- ------出力内容--------------
Uディスクが正常にロードされました
Uディスクが動作を開始します
Uディスクが正常にアンインストールされました
USBキーボードが正常にロードされました
USBキーボードが動作を開始します
USB キーボードは正常にアンインストールされました
---- ----------------------------------*/
?> ;


著者: コードネーム オーロラ
http://www .cnblogs.com/zizhuyuan/archive/2011/06/16/2082262.html


http://www.bkjia.com/PHPjc/323677.html
www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/323677.html技術記事次のコードをコピーします: ?php /* インターフェース技術* * インターフェースは特別な抽象クラスであり、抽象クラスは特別なクラスです* * インターフェースと抽象クラスは同じ機能を持っています* * PHP では単一であるため、.. .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。