ホームページ Java &#&チュートリアル オブジェクト指向 (継承、オーバーライド、this、スーパー、抽象クラス)

オブジェクト指向 (継承、オーバーライド、this、スーパー、抽象クラス)

Jun 26, 2017 am 09:59 AM
this 物体 継承する リライト のために

継承
クラスBを定義する際、既存のクラスAがこれから定義するクラスBと類似していることが分かり、クラスBがクラスAの型である場合、クラスBはクラスAのサブクラスとして定義できる。

複数のクラスに共通の内容がある場合、その共通の内容を上方に抽出して新しいクラスに抽出することができ、この新しいクラスは継承と呼ばれる複数のクラスとの関係を形成します。
サブクラスが親クラスを継承すると、親クラスの継承可能なすべての属性と機能を自動的に所有します。

Notes
Java は単一継承のみをサポートし、多重継承はサポートせず、多層継承をサポートします。
すべてのクラスは、直接的または間接的に Object クラスを継承します。
コンストラクターは継承できません。

メソッドのオーバーライド
子クラスが親クラスを継承すると、継承可能なすべての属性が自動的に継承されます。親クラスの関数のプロパティ。しかし、サブクラスは、親クラスのメソッドが十分強​​力ではないと判断した場合、独自のロジックに従って親クラスのメソッドを書き換えることができます
。 メソッドのコピーおよびメソッドの上書きとも呼ばれます。
注意事項
1. @Override を使用して、メソッドのオーバーライドかどうかを確認できます
2. サブクラス メソッドの権限は、親クラス メソッドの権限以上である必要があります
3. 以下を推奨します。親クラスのメソッドと同じメソッドを使用します

親クラスのオブジェクトと子 クラスオブジェクトの作成過程
子クラスのオブジェクトよりも先に親クラスのオブジェクトが生成されます
子クラスのオブジェクトが作成されるたびに、親クラスの空のパラメーター コンストラクターは、親クラス オブジェクト (新しいオブジェクトではなく) を作成するためにデフォルトで呼び出されます
実際、サブクラスが親のコンテンツを取得したい場合は、親クラス オブジェクトがサブクラス オブジェクト内に作成されます。クラスの場合、そのような親クラスのスペースサポートが必要です。サブクラスの各コンストラクターの最初の行には、デフォルトの super () があり、親クラスの空のパラメーターコンストラクターを呼び出します
super (parameter) のコンストラクターメソッドを呼び出します。親クラス


thisとsuper
this:このクラスのオブジェクトの参照super:このクラスのオブジェクト内の親クラスの参照

thisとsuper

thisの属性名はメンバーにアクセスします。このクラスの変数 this.メソッド名 (パラメータ) はこのクラスの他のメソッドにアクセスします
this (パラメータ) はこのクラスの他のコンストラクタにアクセスします (コンストラクタ メソッドの最初の行で使用する必要があることに注意してください) (理解してください)

super.property 名は親クラスのメンバー変数 (非プライベート) にアクセスします

super.method 名 (パラメーター) は親クラスのメンバーのメソッド (非プライベート) にアクセスします

super(parameter) は親クラスのコンストラクター (非プライベート) にアクセスします (注コンストラクターの最初の行で使用する必要があること)

注:

this と super は、コンストラクターを呼び出すときに同じコンストラクターで同時に使用することはできません。両方とも最初の行で定義する必要があるためです。 。 コンストラクターを呼び出すときは、呼び出す前にそのようなコンストラクターがあることを確認する必要があります。そのようなコンストラクターがない場合は呼び出すことができません。

抽象クラス

抽象メソッド:メソッド本体のないメソッドを抽象メソッドと呼びます抽象クラス:抽象メソッドを持つクラスは抽象クラスでなければなりません

抽象クラスの使い方
1.抽象クラスは作成できませんオブジェクト 2. 定義 サブクラスは抽象クラスを継承します
3. サブクラスは親クラスのメソッドをオーバーライドします
4. メソッドを呼び出すサブクラス オブジェクトを作成します
抽象クラスの詳細:
1. 抽象クラスは抽象メソッドを持つことができません
2. 抽象クラスは具象メソッドを持つことができます
3 .抽象クラスは親クラスである必要があります
4. サブクラスはすべての抽象メソッドをオーバーライドする必要があります。そうでない場合、サブクラスも抽象クラスになります
5. 抽象クラスにはコンストラクターがあり、サブクラスはコンストラクターを使用してメンバー変数に値を割り当てる必要があります
抽象クラスの登場
の意味 抽象クラスは、物事のクラスの最も基本的な属性と動作を定義します。サブクラスにその機能を強制的に実装します。サブクラスは、その抽象メソッドをオーバーライドする必要があります
抽象クラスの定義
* 抽象クラスの定義
* パブリック抽象クラス クラス名 {
*
*
* }

以上がオブジェクト指向 (継承、オーバーライド、this、スーパー、抽象クラス)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

C++関数継承の詳しい解説:継承で「基底クラスポインタ」と「派生クラスポインタ」を使うには? C++関数継承の詳しい解説:継承で「基底クラスポインタ」と「派生クラスポインタ」を使うには? May 01, 2024 pm 10:27 PM

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

MySQLクエリ結果の配列をオブジェクトに変換するにはどうすればよいですか? MySQLクエリ結果の配列をオブジェクトに変換するにはどうすればよいですか? Apr 29, 2024 pm 01:09 PM

MySQL クエリ結果の配列をオブジェクトに変換する方法は次のとおりです。 空のオブジェクト配列を作成します。結果の配列をループし、行ごとに新しいオブジェクトを作成します。 foreach ループを使用して、各行のキーと値のペアを新しいオブジェクトの対応するプロパティに割り当てます。新しいオブジェクトをオブジェクト配列に追加します。データベース接続を閉じます。

継承とポリモーフィズムは C++ のクラス結合にどのような影響を与えますか? 継承とポリモーフィズムは C++ のクラス結合にどのような影響を与えますか? Jun 05, 2024 pm 02:33 PM

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

golangで関数を書き直すにはどうすればよいですか? golangで関数を書き直すにはどうすればよいですか? Apr 27, 2024 am 11:15 AM

Go では、メソッドのオーバーライドにより、同じメソッド シグネチャを維持しながら、基本クラスのメソッドを派生クラスで再定義できます。override キーワードを使用します。オーバーライドされたメソッドは、基本メソッドと同じシグネチャを持つ必要があります。オーバーライドされたメソッドのレシーバー型は、基本型のサブタイプである必要があります。

C++ 関数の継承の詳細な説明: 継承のエラーをデバッグするには? C++ 関数の継承の詳細な説明: 継承のエラーをデバッグするには? May 02, 2024 am 09:54 AM

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

PHP における配列とオブジェクトの違いは何ですか? PHP における配列とオブジェクトの違いは何ですか? Apr 29, 2024 pm 02:39 PM

PHP では、配列は順序付けられたシーケンスであり、要素はインデックスによってアクセスされます。オブジェクトは、new キーワードによって作成されたプロパティとメソッドを持つエンティティです。配列へのアクセスはインデックス経由で、オブジェクトへのアクセスはプロパティ/メソッド経由で行われます。配列値が渡され、オブジェクト参照が渡されます。

PHP の Request オブジェクトとは何ですか? PHP の Request オブジェクトとは何ですか? Feb 27, 2024 pm 09:06 PM

PHP の Request オブジェクトは、クライアントからサーバーに送信される HTTP リクエストを処理するために使用されるオブジェクトです。 Request オブジェクトを通じて、リクエストを処理して応答するために、リクエスト メソッド、リクエスト ヘッダー情報、リクエスト パラメータなどのクライアントのリクエスト情報を取得できます。 PHP では、$_REQUEST、$_GET、$_POST などのグローバル変数を使用して、要求された情報を取得できますが、これらの変数はオブジェクトではなく配列です。リクエスト情報をより柔軟かつ便利に処理するために、次のことができます。

C++ 関数がオブジェクトを返すときは何に注意する必要がありますか? C++ 関数がオブジェクトを返すときは何に注意する必要がありますか? Apr 19, 2024 pm 12:15 PM

C++ では、関数がオブジェクトを返すときに注意する点が 3 つあります。 オブジェクトのライフサイクルは、メモリ リークを防ぐために呼び出し元によって管理されます。ぶら下がりポインタを回避し、動的にメモリを割り当てるかオブジェクト自体を返すことにより、関数が戻った後もオブジェクトが有効なままであることを確認します。コンパイラーは、パフォーマンスを向上させるために、返されたオブジェクトのコピー生成を最適化する場合がありますが、オブジェクトが値セマンティクスによって渡される場合、コピー生成は必要ありません。

See all articles