ホームページ バックエンド開発 PHPチュートリアル PHP の基本 継承の使用方法_PHP チュートリアル

PHP の基本 継承の使用方法_PHP チュートリアル

Jul 20, 2016 am 10:57 AM
c++ java p php 説明書 について 存在する ベース 物体 属する 機構 継承する のために

継承 は、3 つの主要なオブジェクト指向メカニズムの 1 つです。 C++、JAVA、PHPに存在します。以下はPHPでの使い方の紹介です。

通常、他の既存のクラスと同じ変数と関数を持つクラスが必要です。実際、すべてのプロジェクトで使用される共通のクラスを定義し、各特定のプロジェクトに適応するようにこのクラスを継続的に強化することは良い練習になります。これを簡単にするために、クラスを他のクラスから拡張できます。拡張クラスまたは派生クラスは、その基本クラスのすべての変数と関数を所有し (これは、誰も死なないことを除いて「継承」と呼ばれます)、派生クラスで定義されたすべての部分を含みます。

クラス内の要素を減らすことはできません。つまり、既存の関数や変数を登録解除することはできません。拡張クラスは常に単一の基本クラスに依存します。つまり、多重継承はサポートされません。クラスを拡張するには、キーワード「extends」を使用します。

<ol class="dp-c">
<li class="alt"><span><span><?php  </span></span></li><li><span class="keyword">class</span><span> test {  </span></li><li class="alt"><span class="keyword">public</span><span> </span><span class="keyword">function</span><span> __construct() {   </span></li><li><span>}  </span></li><li class="alt"><span class="keyword">public</span><span> </span><span class="keyword">function</span><span> name() {   </span></li><li><span class="vars">$this</span><span>->xname(</span><span class="string">'John'</span><span>);   </span></span></li>
<li class="alt"><span>}  </span></li>
<li>
<span class="keyword">private</span><span> </span><span class="keyword">function</span><span> showName(</span><span class="vars">$name</span><span>) {   </span>
</li>
<li class="alt">
<span class="func">echo</span><span> </span><span class="string">'my name in test is '</span><span>.</span><span class="vars">$name</span><span>;   </span>
</li>
<li><span>}   </span></li>
<li class="alt"><span>}  </span></li>
<li>
<span class="keyword">class</span><span> extendTest </span><span class="keyword">extends</span><span> test {  </span>
</li>
<li class="alt">
<span class="keyword">public</span><span> </span><span class="keyword">function</span><span> __construct() {   </span>
</li>
<li><span>parent::__construct();   </span></li>
<li class="alt"><span>}  </span></li>
<li>
<span class="keyword">private</span><span> </span><span class="keyword">function</span><span> showName(</span><span class="vars">$name</span><span>) {   </span>
</li>
<li class="alt">
<span class="func">echo</span><span> </span><span class="string">'my name in extendTest is '</span><span>.</span><span class="vars">$name</span><span>;   </span>
</li>
<li><span>}   </span></li>
<li class="alt"><span>}  </span></li>
<li>
<span class="vars">$test</span><span> = </span><span class="keyword">new</span><span> extendTest();   </span>
</li>
<li class="alt">
<span class="vars">$test</span><span>->name();   </span>
</li>
<li><span>?> </span></li>
</ol>
ログイン後にコピー

上の例は、Cart クラスのすべての変数と関数に加えて、追加の変数 $owner と追加の関数 set_owner() を含む Named_Cart という名前のクラスを定義します。これで、名前付きショッピング カートが通常の方法で作成され、ショッピング カートの所有者を設定および取得できるようになります。通常のショッピング カート クラスの関数は、名前付きショッピング カート クラスでも引き続き使用できます:

<ol class="dp-c">
<li class="alt"><span><span><?php  </span></span></li><li><span class="vars">$ncart</span><span> = </span><span class="keyword">new</span><span> Named_Cart; </span><span class="comment">// 新建一个有名字的购物车 </span><span> </span></li><li class="alt"><span class="vars">$ncart</span><span>->set_owner(</span><span class="string">"kris"</span><span>); </span><span class="comment">// 给该购物车命名 </span><span> </span></span></li>
<li>
<span>print </span><span class="vars">$ncart</span><span>->owner; </span><span class="comment">// 输出该购物车主人的名字 </span><span> </span>
</li>
<li class="alt">
<span class="vars">$ncart</span><span>->add_item(</span><span class="string">"10"</span><span>, 1); </span><span class="comment">// (从购物车类中继承来的功能) </span><span> </span>
</li>
<li><span>?>  </span></li>
</ol>
ログイン後にコピー

これは、「父と子」関係とも呼ばれます。クラス (親クラス) を作成し、extends を使用して親クラスに基づいて新しいクラス (子クラス) を作成します。この新しいサブクラスを使用して、このサブクラスに基づいて別のクラスを作成することもできます。

注:

クラスは定義された後にのみ使用できます。 Cart クラスを継承するために Named_Cart クラスが必要な場合は、最初に Cart クラスを定義する必要があります。 Named_Cart クラスに基づいて別の Yellow_named_cart クラスを作成する必要がある場合は、最初に Named_Cart クラスを定義する必要があります。簡単に言うと、クラス定義の順序は非常に重要です。

継承の利点: 1. オブジェクト指向の 3 つの主要な特徴の 1 つ

2. コードの再利用性の向上

4.

5. 継承は、サブクラスを使用して親クラスを「拡張」することです

C++ は多重継承に属し、同じクラスは複数の親クラスを持つことができます

PHP と JAVA は単一継承に属し、同じクラスは 1 つの親クラスのみです

多重継承でも​​単一継承でもサブクラスは複数持つことができます

2つのクラスを設計する際に共有できるメンバーがあれば、共有した内容を単独で基底クラスとして使用します

1.継承

1. サブクラスを宣言し、extends キーワードを使用して親クラスを継承 (拡張) します

2. サブクラスは、メンバー属性メソッド、構築メソッドなどを含む、すべての内容を親クラスから継承できます。サブクラスで使用されます

2. アクセス型制御

サブクラスは親クラスからすべてを継承できますが、プライベートメンバーはクラス内で使用される場合にのみ使用でき、カプセル化する場合はサブクラス内で使用できません。 , 自分のクラス内をアクセスできるようにするだけでなく、サブクラスからも利用できるようにすることができますが、クラス外で使用することはできません

3. 親のメソッドをオーバーロードします。サブクラス内のクラス

1. サブクラスは親クラスと同じメソッド名を宣言できます。つまり、サブクラスは同じ名前の親クラスのメソッドをオーバーライドします

2。親クラスに名前を付ける クラスメソッドの拡張

3. サブクラス内の親クラスでオーバーライドされたメソッドを呼び出す

親クラス名::メソッド名()を使用する

4.サブクラス メソッドのコンストラクター。親クラスにもコンストラクター メソッドがある場合は、必ず親クラスでオーバーライドされたコンストラクター メソッドを呼び出してください。 注: サブクラスのオーバーロードされたメソッドには、親クラスのメソッドよりも低いアクセス許可を設定することはできません。 (サブクラスは権限を拡大できます。ただし、権限を減らすことはできません)

これがあなたのお役に立てば幸いです。

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

www.bkjia.comtru​​e
http://www.bkjia.com/PHPjc/445786.html

技術記事継承は、3 つの主要なオブジェクト指向メカニズムの 1 つです。 C++、JAVA、PHP に存在します。次に、PHP での使用方法を紹介します。 通常、このようなクラスが必要です...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Apr 01, 2025 pm 03:06 PM

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

カプセルの量を見つけるためのJavaプログラム カプセルの量を見つけるためのJavaプログラム Feb 07, 2025 am 11:37 AM

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Feb 07, 2025 pm 12:11 PM

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。

See all articles