Java でのメソッドのオーバーライドを完全に習得する
この記事では、java に関する関連知識を提供します。サブクラスが親クラスを継承した後、親クラスと同じ名前と同じパラメーターを使用してサブクラスにメソッドを作成できます。親クラスの機能を実現するクラス内で同じ名前とパラメータを持つメソッドを上書きすることをメソッド書き換えと呼びます一緒に見ていきましょう。皆さんの参考になれば幸いです。
推奨学習: 「java ビデオ チュートリアル 」
1. 意味
サブクラスが親を継承した後class では、親クラスと同じ名前、同じパラメータを持つメソッドをサブクラスに記述することで、親クラスの同じ名前、同じパラメータを持つメソッドをオーバーライドできます。この処理をメソッドのオーバーライドと呼びます
2. メソッドのオーバーライドを使用する理由
2.1 親クラスのメソッドがサブクラスのニーズを満たせない場合、メソッドをサブクラスで書き直す必要があります
2.2 質問と分析
たとえば、親クラス Peple とサブクラス Chinese があり、親クラスには人々の会話を出力する Say() メソッドがありますが、サブクラスに呼び出させたい場合は、次のように出力されます。中国人が話しています。とても難しいです。メソッドを直接呼び出すことは明らかに不可能なので、サブクラス
2.3 サンプルコード
Peopleクラス
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public void say(){ System.out.println("人在说话"); } }
中国語クラス
public class Chinese extends Peple{ public Chinese() { } @Override public void say() { System.out.println("中国人在说话"); } }
Test03クラス
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); c.say(); //当进行方法重写时,调用的是子类的say()方法 } }
2.4サンプルコード実行スクリーンショット
3.メソッドオーバーライドの使用方法
3.1 基本構文
@Override 权限修饰符 返回值类型 方法名(形参列表){ //子类重写的方法的权限修饰符的访问权限必须大于等于父类的,但是父类不能是private //当父类的返回值类型为基本数据类型或者为void时,子类方法的返回值类型也应该为对应的基本数据类型或者void }
3.2 特殊な分析
3.2.1 サブクラスによってオーバーライドされるメソッドのアクセス許可は、または親クラスのメソッドのアクセス権限と同等
a サンプルコード
People クラス
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } //没有写访问权限的话,默认是default访问权限 void say(){ System.out.println("人在说话"); } }
中国語クラス
public class Chinese extends Peple{ public Chinese(){ } //父类say方法的访问权限为default,子类say方法的访问权限为public, // 符合子类方法访问权限大于等于父类方法访问权限的要求 @Override public void say() { System.out.println("中国人在说话"); } }
Test03 クラス
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); c.say(); } }
b サンプルコード実行時のスクリーンショット
3.2.2 親クラスのメソッドの戻り値の型が基本データ型の場合、メソッドの戻り値の型は次のようにオーバーライドされます。サブクラスも対応する基本データ型です。
a サンプル コード
People クラス
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public double add(int a,int b){ return a+b; } }
中国語クラス
public class Chinese extends Peple{ public Chinese(){ } @Override public double add(int a,int b) { return a+b+1; } }
Test03 クラス
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); System.out.println("求和之和再加上1的结果为: "+c.add(2, 3)); } }
b サンプルコード実行時のスクリーンショット
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public void eat(){ System.out.println("人的主食一般是熟食"); } }
public class Chinese extends Peple{ public Chinese(){ } @Override public void eat() { System.out.println("中国人的主食是大米或者小麦"); } }
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); c.eat(); } }
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public static void eat(){ System.out.println("人的主食一般是熟食"); } }
public class Chinese extends Peple{ public Chinese(){ } @Override public void eat() { System.out.println("中国人的主食是大米或者小麦"); } }
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); c.eat(); } }
#強制実行後に表示されるエラー メッセージ
3.3.1メソッドのコピー
手順
1. まず、サブクラス
2 によってオーバーライドする必要がある親クラスのメソッドを直接コピー (Ctrl C) します。貼り付け (Ctrl V) ) をサブクラス
3 に追加します。親クラスでは達成できない要件の実現を容易にするために、サブクラス内の関数を変更します。
操作スクリーンショットの表示
#3.3 .2 コンパイラプロンプトメソッド
手順
1. オーバーライドされたメソッドが配置される場所にマウスを移動します。
#2. キーボードの Alt キーと Insert キーを同時に押します。3. ポップアップ ボックスで、[メソッドのオーバーライド] を選択します
#4. ダブルクリックすると、インターフェイスがポップアップ表示されます。インターフェイスで、サブクラスによってオーバーライドする必要があるメソッドを選択します5. [OK] ボタンをクリックします。必要な書き換えメソッドは後で生成されます6. 自動生成された書き換えメソッドの最初の行を削除し、メソッド本体に適切なステートメントを記述します操作スクリーンショットの表示# 推奨学習: 「
以上がJava でのメソッドのオーバーライドを完全に習得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック









Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

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

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

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