JavaScript オブジェクト指向 JavaScript 継承_js オブジェクト指向
前のセクションでは、JavaScript オブジェクト指向名前空間、JavaScript オブジェクト指向 JavaScript クラス、JavaScript オブジェクト指向のプライベート メンバーとパブリック メンバー について説明しました。 🎜>JavaScript オブジェクト指向のオーバーロード については、まず上記を読んでから、以下を読み続けることができます。
JavaScript で継承を実装する方法は数多くあります。一般的な方法を 2 つ紹介します。
1. 継承を呼び出し、最初にコードを確認します。
まず「person」クラスを定義します
person=function(){
this.name="Grass Mud Horse";
this.eat= function(){
alert("食べたい");
}
this.sleep=function(){
alert("寝たい");
}
別の学生クラスを定義し、それを Person から継承させます
person.call(this);// Person クラスを継承
this.do宿題=function (){
alert("先生が来ました、宿題をコピーさせてください");
}
}
重要なのは、 person.call という文に注目することです。 (this)、ここで this は現在のオブジェクト、つまり Student を表します。これは理解しやすいものであり、 Person.call(this) は次のことを意味します。 Student は person のすべての機能も持ちます。
同様に、女の子クラスを定義します。
パーソン.call(this);//継承 パーソン クラス
this.sex="女性";
JavaScript は多重継承を実装できます。以下の Master クラスを見てください。この Master は当然学生ですが、同時にかわいい女の子でもあるため、次のコードがあります。 >
コードをコピー
}
テストできます:
コードをコピーします
がある場合は、順序に注意してください。 2 つのクラスに同じ名前のメンバーがある場合、後者は前のクラスを上書きします。つまり、現在のクラスは後者のクラスのメンバーのみを継承します。
呼び出しメソッドの継承については以上です。呼び出しメソッドがわからない場合は、Google に聞いてください。あまりネット上に転載しないでください。別の継承方法について話しましょう。
2 番目、プロトタイプのプロトタイプ継承:
モニター クラスを定義しましょう:
コードをコピーします
コードは次のとおりです。 :
上記はマスター クラスを定義しています。これで、このマスターは分隊長に昇格したため、このマスターは分隊長を継承します。今回はプロトタイプを使用して実装します。次のコードを参照してください:
コードをコピーします
コードは次のとおりです:
Master.prototype=new SquadLeader();//プロトタイプ属性はオブジェクトを指します
//または
//Master.prototype=SquadLeader.prototype
;マスターは SquadLeader クラスを継承します。これには 2 つの形式があります。実際、原理は同じです。それは、分隊長の「魂」をマスターにコピーすることを意味します。これで、マスターは分隊長ができるすべてのことができるようになります。
テストします:
var master=new Master();
master.hi()//出力 "こんにちは、クラスメートの皆さん、私はモニターになりました"
個人的には、最初の解決策 (呼び出し継承) を使用して継承を実装することを好みます。すべてのコードが "{}" で囲まれており、2 番目の解決策よりも記述スタイルが C# に近いことがわかります。私は通常、prototype プロパティを使用して既存のクラスを拡張します。
JavaScript は非常に柔軟な言語です。継承を実装するためのより良い方法があるかもしれません。ここでは、素晴らしい翡翠につながることを願って、レンガを投げています。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











関数の継承では、「基底クラス ポインター」と「派生クラス ポインター」を使用して継承メカニズムを理解します。基底クラス ポインターが派生クラス オブジェクトを指す場合、上方変換が実行され、基底クラスのメンバーのみにアクセスされます。派生クラス ポインターが基本クラス オブジェクトを指す場合、下向きキャストが実行される (安全ではない) ため、注意して使用する必要があります。

継承とポリモーフィズムはクラスの結合に影響します。派生クラスは基本クラスに依存するため、継承により結合が増加します。ポリモーフィズムにより、オブジェクトは仮想関数と基本クラス ポインターを通じて一貫した方法でメッセージに応答できるため、結合が軽減されます。ベスト プラクティスには、継承を控えめに使用すること、パブリック インターフェイスを定義すること、基本クラスへのデータ メンバーの追加を回避すること、依存関係の注入を通じてクラスを分離することが含まれます。ポリモーフィズムと依存性注入を使用して銀行口座アプリケーションの結合を軽減する方法を示す実践的な例。

継承エラーのデバッグのヒント: 正しい継承関係を確認します。デバッガーを使用してコードをステップ実行し、変数値を調べます。仮想修飾子を正しく使用してください。隠れた相続によって引き起こされる相続ダイアモンド問題を調べてください。抽象クラスに実装されていない純粋仮想関数がないか確認します。

Go 言語は、型定義とメソッドの関連付けを通じてオブジェクト指向プログラミングをサポートします。従来の継承はサポートされていませんが、合成を通じて実装されます。インターフェイスは型間の一貫性を提供し、抽象メソッドを定義できるようにします。実際の事例では、顧客操作の作成、取得、更新、削除など、OOP を使用して顧客情報を管理する方法を示します。

PHP における OOP のベスト プラクティスには、命名規則、インターフェイスと抽象クラス、継承とポリモーフィズム、依存関係の注入が含まれます。実際のケースには、ウェアハウス モードを使用してデータを管理する場合や、ストラテジー モードを使用して並べ替えを実装する場合などがあります。

Go 言語は、オブジェクト指向プログラミング、構造体によるオブジェクトの定義、ポインター レシーバーを使用したメソッドの定義、インターフェイスによるポリモーフィズムの実装をサポートしています。オブジェクト指向の機能は、Go 言語でのコードの再利用、保守性、カプセル化を提供しますが、クラスや継承、メソッド シグネチャ キャストといった従来の概念が欠如しているなどの制限もあります。

Golang (Go 言語) には伝統的な意味でのクラスの概念はありませんが、構造体と呼ばれるデータ型が提供され、これによってクラスと同様のオブジェクト指向機能を実現できます。この記事では、構造体を使用してオブジェクト指向機能を実装する方法を説明し、具体的なコード例を示します。構造体の定義と使用法 まず、構造体の定義と使用法を見てみましょう。 Golang では、type キーワードを通じて構造を定義し、必要に応じて使用できます。構造には属性を含めることができます

C++ 関数の継承は、次の状況では使用しないでください。 派生クラスが異なる実装を必要とする場合、異なる実装を持つ新しい関数を作成する必要があります。派生クラスが関数を必要としない場合は、空のクラスとして宣言するか、プライベートの未実装の基本クラス メンバー関数を使用して関数の継承を無効にする必要があります。関数が継承を必要としない場合は、コードの再利用を実現するために他のメカニズム (テンプレートなど) を使用する必要があります。
