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

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。
