Java の書き換え、オーバーロード、ポリモーフィズムを定義して使用する方法

王林
リリース: 2023-05-04 17:22:07
転載
818 人が閲覧しました

1. 書き換え:

a.定義:

書き換えとは、サブクラスからアクセスが許可されている親クラスのメソッドの実装を書き換える処理であり、戻り値や仮引数は変更できません。つまり、シェルは変更されず、コアが書き換えられます。

オーバーライドの利点は、サブクラスが必要に応じて独自の動作を定義できることです。つまり、サブクラスは必要に応じて親クラスのメソッドを実装できます。

オーバーライド メソッドは、新しいチェック例外や、オーバーライドされたメソッドによって宣言された例外よりも広範囲の例外をスローできません。例:###### クラス動物{

public void move(){

System.out.println("動物は移動できます");

} }

クラス Dog は Animal を拡張します{

public void move(){

System.out.println("犬は走ったり歩いたりできる");

} }

次に引用します:

Animal a = new Animal(); // 動物オブジェクト

Animal b = new Dog(); // 犬オブジェクト

a.move();//Animalクラスのメソッドを実行

b.move();//Dogクラスのメソッドを実行

出力は次のとおりです:

动物可以移动 狗可以跑和走
ログイン後にコピー

上の例でわかるように、 b は Animal タイプに属しますが、Dog クラスの move メソッド (オーバーライドするメソッド) を実行します。 これは、コンパイル段階ではパラメーターの参照型のみがチェックされるためです。

ただし、実行時には、Java 仮想マシン (JVM) がオブジェクトのタイプを指定し、オブジェクトのメソッドを実行します。

したがって、上記の例では、Animal クラスに move メソッドが存在するためコンパイルは成功しますが、実行時には特定のオブジェクトのメソッドが実行されます。

b. ルール:

1. パラメータ リストは、オーバーライドされたメソッドのパラメータ リストとまったく同じである必要があります。

2. 戻り値の型は、オーバーライドされたメソッドの戻り値の型と異なっていてもかまいませんが、親クラスの戻り値の派生クラスである必要があります。

3. アクセス権限は、親クラスのオーバーライドされたメソッドのアクセス権限より低くすることはできません。

4. 親クラスのメンバー メソッドは、そのサブクラスによってのみオーバーライドできます。同じパッケージ内のサブクラスが、private および Final として宣言されたメソッドを除く、すべての親クラスのメソッドをオーバーライドできる場合。

5. Final として宣言されたメソッドはオーバーライドできませんが、static として宣言されたメソッドはオーバーライドできませんが、再度宣言することはできます。

6. サブクラスと親クラスが同じパッケージ内にない場合、サブクラスは、public および protected と宣言されている親クラスの非finalメソッドのみをオーバーライドできます。

7. オーバーライドされたメソッドは、例外をスローするかどうかに関係なく、任意の非必須例外をスローできます。ただし、オーバーライドされたメソッドは、新しい必須例外や、オーバーライドされたメソッドで宣言された例外よりも広範囲の必須例外をスローすることはできません。また、その逆も同様です。

2. オーバーロード:

cと同様の意味です。

オーバーロードとは、クラス内の同じ名前で異なるパラメーターを持つメソッドです。戻り値の型は同じでも異なっていても構いません。

オーバーロードされた各メソッド (またはコンストラクター) には、パラメーターの型の一意のリストが必要です。

最も一般的に使用されるのは、コンストラクターのオーバーロードです。

オーバーライドとの違いは、オーバーロードはさまざまなパラメーターに焦点を当てることです。

3. ポリモーフィズム:

a.定義:

ポリモーフィズムとは、同じ動作が複数の異なる発現または形状を持つ能力です。ポリモーフィズムは同じインターフェイスであり、異なるインスタンスを使用して異なる操作を実行します。

インターフェースをうまく適用するには、ポリモーフィズムの概念を学ぶことが非常に重要です。

ポリモーフィズムが存在するための 3 つの必要条件:

1.

を継承 2.

を書き直す 3. 親クラス参照は、サブクラス オブジェクト

を指します。 たとえば、この例では、親クラスの参照がサブクラスのオブジェクトを指しています:

親 p = new Child();

注: ポリモーフィズムを利用したメソッドを呼び出す場合は、親クラスにそのメソッドが存在するかどうかを確認し、存在しない場合はコンパイルエラーが発生しますので、存在する場合はサブクラスにある同名のメソッドを呼び出してください。

b. 仮想機能:

仮想関数はポリモーフィズムの基礎の 1 つです。もちろん、JAVA のすべての関数はデフォルトで C の意味での仮想関数であり、動的なバインディングが Java のデフォルトの動作であるため、特に注意する必要はありません。

Java で関数に仮想関数の特性を持たせたくない場合は、final キーワードを追加して非仮想関数にすることができます。

以上がJava の書き換え、オーバーロード、ポリモーフィズムを定義して使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!