PHPのポリモーフィズムの説明[例を挙げて]
公開: 2021-02-19PHPプログラミング言語は、他の基本構造とともに、オブジェクト指向プログラミング(OOP)パラダイムに従います。 OOPの最も重要な機能の1つは、ポリモーフィズムです。 一般的に、ポリモーフィズムはギリシャ語のポリが多くを意味し、射が形を意味することに由来します。 OOPのポリモーフィズムは、単一のインターフェースでさまざまな機能を持つクラスを作成できるようにする概念です。
一般に、コンパイル時(オーバーロード)と実行時(オーバーライド)の2つのタイプがありますが、PHPのポリモーフィズムは、オーバーロード、つまりコンパイル時のポリモーフィズムをサポートしていません。 PHPのポリモーフィズムの最も重要な利点は、すべてが同じように使用されるため、どのコードがどのクラスで記述されるかを定義する技術について心配する必要がないことです。
オブジェクト指向のPHPポリモーフィズムのわかりやすい例は、さまざまな幾何学的形状の領域です。 長さ、幅、半径、その他のパラメータが異なる多くの形状がありますが、すべての図に面積があります。 PHPのさまざまなポリモーフィズムの例を見て、概念とその実装方法をよりよく理解するため、理解していなくても心配する必要はありません。
目次
PHPでポリモーフィズムを実装する方法は?
PHPのポリモーフィズムは、インターフェースまたは抽象クラスのいずれかを使用して実装できます。 両方の方法でそれを実施するための例を見ていきます。
インターフェイスに実装するPHPのポリモーフィズムの例
インターフェイスは、それを拡張するすべてのクラスの青写真と見なすことができます。 これらはクラスに似ていますが、主な違いは1つだけです。 インターフェイス内でメソッド名と引数を宣言および定義することはできますが、メソッドコードを記述することはできません。 インターフェイスを実装するクラスはすべて、そのすべてのメソッドを実装します。 インターフェイスの構文は次のとおりです。
インターフェイスexampleInterface{
パブリック関数methodName();
}
これでインターフェースについて理解できたので、インターフェースでPHPにポリモーフィズムを実装する方法を見てみましょう。
<?php
インターフェイスShapeExmp{
パブリック関数calcArea();
}
クラスSquareExmpはShapeExmp{を実装します
プライベート$side;
パブリック関数__construct($ side){
$ this-> side = $ side;
}
パブリック関数calcArea(){
$ area = $ this-> side * $ this-> side;
echo“ Area of square="。$area;
}
}
クラスRectangleExmpはShapeExmp{を実装します
プライベート$width1;
プライベート$height1;
パブリック関数__construct($ width1、$ height1){
$ this-> width1 = $ width1;
$ this-> height1 = $ height1;
}
パブリック関数calcArea(){
$ area = $ this-> width1 * $ this-> height1;
echo“<br>長方形の面積="。$area;
}
}
クラスTriangleExmpはShapeExmp{を実装します
プライベート$cons1;
プライベート$width1;
プライベート$height1;
パブリック関数__construct($ cons1、$ width1、$ height1){
$ this-> cons1 = $ cons1;
$ this-> width1 = $ width1;
$ this-> height1 = $ height1;
}
パブリック関数calcArea(){
$ area = $ this-> cons1 * $ this-> width1 * $ this-> height1;
echo“<br>三角形の面積="。$area;
}
}
$ squ = new SquareExmp(8);
$ squ-> calcArea();
$ rect = new RectangleExmp(10,15);
$ rect-> calcArea();
$ tri = new TriangleExmp(0.5,10,12);
$ tri-> calcArea();
?>
出力:
正方形の面積=64
長方形の面積=150
三角形の面積=3
上記の例でわかるように、インターフェイスを介してPHPにポリモーフィズムを実装しました。 正方形、三角形、長方形の3つの形状の領域を作成して取得しました。 実装されたクラスは変化し続け、引数も変化し続けますが、結果は常に形状の領域になります。 同様に、円、平行四辺形、楕円などの他の形状の面積を作成して計算することもできます。
抽象クラスに実装するPHPのポリモーフィズムの例
PHPの抽象クラスは、メソッドは定義されているがコードは定義されていない親クラスです。 それらは「abstract」キーワードの助けを借りて定義されます。 それらは他のクラスを継承するためにのみ使用できます。 すべての抽象クラスには、1つ以上の抽象メソッドがあります。 これらのクラスでは、子クラスがメソッドに同じ名前を入力する必要があります。 したがって、異なる子クラスが同じ方法でメソッドを使用し、それによってPHPでポリモーフィズムを実装します。 PHPのポリモーフィズムの例でこれをよりよく理解しましょう。
<?php
抽象クラスshapeExmp{
抽象保護関数calcArea();
}
クラスrectangleExmpはshapeExmp{を拡張します
var $ x、$ y;
パブリック関数__construct($ x、$ y){
$ this-> x = $ x;
$ this-> y = $ y;
}
パブリック関数calcArea(){
$ a = $ this-> x * $ this-> y;
$aを返します。
}
}
クラスcircleExmpはshapeExmp{を拡張します
var $ r;
パブリック関数__construct($ r){
$ this-> r = $ r;
}
パブリック関数calcArea(){
$ pi = 3.142;
$ a = pow($ this-> r、2)* $ pi;
$aを返します。
}
}
クラスsquareExmpはshapeExmp{を拡張します
var $ s;
パブリック関数__construct($ s){
$ this-> s = $ s;
}
パブリック関数calcArea(){
$ a = $ this-> s * $ this-> s;
$aを返します。
}
}
$ rect = newrectangleExmp(8,10);
$ area = $ rect-> calcArea();
echo“ Rectangle area = $ area <br>”;
$ circ = new circleExmp(5);
$ area = $ circ-> calcArea();
echo“ Circe area = $ area <br>”;
$ squ = new squareExmp(7);
$ area = $ squ-> calcArea();
echo“ Square area = $ area <br>”;
?>
出力:
長方形の面積=80
円の面積=78.55
正方形の面積=49
上記の例でわかるように、最初に抽象クラスshapeExmpを作成しました。 次に、その中に抽象関数calcArea()を定義しました。 円、長方形、および正方形の面積を計算するために、抽象クラスからこれらのクラスを派生させ、抽象関数calcArea()を使用しました。 同様に、抽象クラスを使用してPHPでポリモーフィズムを実装し、実行時に使用できます。
チェックアウト: Github上のPHPプロジェクト
世界のトップ大学からオンラインでソフトウェアコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
結論
これにより、PHPのポリモーフィズムに関するすべての疑問が解消されたはずです。 IDEまたはオンラインPHPコンパイラを使用して、さまざまな方法で使用してみることができます。 PHPは、普及しているプログラミング言語に成長しました。 PHPには数多くのキャリアの機会があります。 インタラクティブなWeb開発に最適であり、フルスタック開発者になることを学ぶことが不可欠です。
フルスタック開発のキャリアを追求したい場合は、フルスタックソフトウェア開発コースでupGradおよびIIIT-BのエグゼクティブPGプログラムを確認できます。 このコースでは、16の異なるプログラミング言語とツールに関する教育を提供します。 コース中に完了する9つ以上のプロジェクトの割り当てにより、upGradは配置の保証を提供します。 堅牢でスケーラブルなWebサイトとアプリケーションを構築する方法を学ぶのに役立つ500時間以上のトレーニング資料を提供します。
オブジェクト指向プログラミングとは何ですか?
プログラミングにおけるポリモーフィズムとは何ですか?
ポリモーフィズムとは、複数の形式を持つ能力です。 たとえば、犬には4本の足がありますが、足は異なります。 これは、同じオブジェクトの別の形式です。 コンピュータプログラミングでは、ポリモーフィズムとは、さまざまな入力を持ち、単一の出力を持つ能力です。 たとえば、Person、Worker、およびCustomerのクラスを作成でき、各個人は異なる入力を持ちます。 それぞれの人が異なる名前、住所、電話番号を持っているので、彼らは異なる入力を持っています。 ただし、Personのクラスであるすべての出力は同じです。
クラスとオブジェクトはプログラミングでどのように機能しますか?
クラスは、オブジェクト指向プログラミング(OOP)の基本単位です。 これらはオブジェクトの青写真であり、オブジェクトを作成したり、オブジェクトの動作を定義したりするために使用されます。 クラスは、OOPの普遍的な構成要素と考えることができます。 これらは、特定のタスクまたは状況に固有のオブジェクトを作成するために使用されます。 ただし、現実の世界とは異なり、クラスはほぼいつでも、どのような順序でも作成できます。 クラスがどのように使用されるかを知る前でも、クラスを作成できます。これは、「匿名」クラスのインスタンス化と呼ばれるプロセスです。