ホームページ >バックエンド開発 >PHPチュートリアル >PHP 抽象クラスのアプリケーションの詳細な解釈_PHP チュートリアル
この文をどこで見たか覚えています。抽象クラスはクラスイメージの一部を抽出します。この文は面白いように見えますが、実際には、抽象クラスの機能は次のとおりです。クラスの多くが書き換えを続ける多くのメソッドを使用していることに気付いた場合は、「クラスを書き換えて、パブリック クラスごとにこのパブリック クラスをインスタンス化することは可能ではないでしょうか?」と思うかもしれません。同じメソッドを呼び出すだけです。" ここではそれが可能です。実際、これは抽象クラスが行うことですが、インスタンス化のステップが省略され、PHP 抽象クラスの抽象メソッドを直接呼び出すのと同じくらい便利になります。このメソッドをオーバーロードすることもできます。例:
<ol class="dp-xml"> <li class="alt"><span><span>abstract class BaseShop </span></span></li> <li><span>{ </span></li> <li class="alt"><span>public function buy($gid) </span></li> <li><span>{ </span></li> <li class="alt"><span>echo('你购买了ID为 :'.$gid.'的商品'); </span></li> <li><span>} </span></li> <li class="alt"><span>public function sell($gid) </span></li> <li><span>{ </span></li> <li class="alt"><span>echo('你卖了ID为 :'.$gid.'的商品'); </span></li> <li><span>} </span></li> <li class="alt"><span>public function view($gid) </span></li> <li><span>{ </span></li> <li class="alt"><span>echo('你查看了ID为 :'.$gid.'的商品'); </span></li> <li><span>} </span></li> <li class="alt"><span>} </span></li> <li><span>class BallShop extends BaseShop </span></li> <li class="alt"><span>{ </span></li> <li> <span>var $</span><span class="attribute">itme_id</span><span> = </span><span class="attribute-value">null</span><span>; </span> </li> <li class="alt"><span>public function __construct() </span></li> <li><span>{ </span></li> <li class="alt"> <span>$this-</span><span class="tag">></span><span class="attribute">itme_id</span><span> = </span><span class="attribute-value">2314</span><span>; </span> </li> <li><span>} </span></li> <li class="alt"><span>public function open() </span></li> <li><span>{ </span></li> <li class="alt"> <span>$this-</span><span class="tag">></span><span>sell($this-</span><span class="tag">></span><span>itme_id); </span> </li> <li><span>} </span></li> <li class="alt"><span>} </span></li> </ol>
上記と同様に、store クラスを定義し、buy、sell、view などのすべての部分を抽出し、これらのメソッドを抽象クラスに実装します。継承すると、これらのメソッドが自動的に取得され、サブクラスは独自の処理を実行し、コードの重複を導入して再利用性を向上させます。
結論: PHP 抽象クラス抽象は、多くのサービスを備えたクラス サービス プロバイダーです。サービスを提供しないことに不満がある場合は、それらを使用することもできます。 。