ホームページ >Java >&#&チュートリアル >継承
Java 継承メカニズムの詳細説明: オブジェクト指向プログラム構築の基礎
Java の継承メカニズムにより、オブジェクトは親オブジェクトのすべてのプロパティと動作を継承できます。これは、オブジェクト指向プログラミング (OOP) の中心概念です。 継承を通じて、既存のクラスに基づいて新しいクラスを作成し、親クラスのメソッドとフィールドを再利用し、これに基づいて新しいメソッドとフィールドを追加できます。
継承とは何ですか?
Java の継承メカニズムを使用すると、あるクラス (サブクラスまたは派生クラス) が別のクラス (スーパークラスまたは親クラス) のプロパティとメソッドを継承できます。 サブクラスはスーパークラスのメンバー (フィールドおよびメソッド) にアクセスして、再利用ルールを強制し、クラス階層を促進できます。 継承は、親子関係としても知られる「IS-A」関係を具体化します。
なぜ Java 継承を使用するのですか?
相続に関する用語
Java 継承構文
<code class="language-java">class 子类名称 extends 超类名称 { // 方法和字段 }</code>
extends
キーワードは、既存のクラスから派生した新しいクラスを作成することを意味します。 「拡張」は拡張された機能を意味します。 Java の用語では、継承されたクラスは親クラスまたはスーパークラスと呼ばれ、新しいクラスはサブクラスまたは子クラスと呼ばれます。
上の図は、Programmer
がサブクラス、Employee
がスーパークラスであることを示しています。両者の関係は Programmer IS-A Employee
であり、プログラマーは一種の従業員であることを意味します。
例: Programmer.java
<code class="language-java">class Employee { float salary = 40000; } class Programmer extends Employee { int bonus = 10000; public static void main(String args[]) { Programmer p = new Programmer(); System.out.println("程序员薪资:" + p.salary); System.out.println("程序员奖金:" + p.bonus); } }</code>
Java の継承型
Javaの継承はクラスの継承関係により、主に単一継承、多層継承、階層継承の3種類に分けられます。
注: Java はクラスを介した多重継承をサポートしていません。
クラスが複数のクラスを継承することを多重継承と呼びます。例: Java での多重継承
単一継承の例
あるクラスが別のクラスを継承することを、単一継承と呼びます。以下の例では、Dog
クラスは Animal
クラスを継承するため、単一継承になります。
Test継承.java
<code class="language-java">class Animal { void eat() { System.out.println("正在吃..."); } } class Dog extends Animal { void bark() { System.out.println("汪汪..."); } } class Test継承 { public static void main(String args[]) { Dog d = new Dog(); d.bark(); d.eat(); } }</code>
マルチレベル継承の例
継承チェーンがある場合、それを多レベル継承と呼びます。以下の例では、BabyDog
クラスが Dog
クラスを継承し、さらにそのクラスが Dog
クラスを継承するため、マルチレベル継承になります。 Animal
<code class="language-java">class 子类名称 extends 超类名称 { // 方法和字段 }</code>
階層継承の例
2 つ以上のクラスが 1 つのクラスから継承することを階層継承と呼びます。以下の例では、Dog
クラスと Cat
クラスの両方が Animal
クラスから継承しているため、階層的な継承になります。
Test継承3.java
<code class="language-java">class Employee { float salary = 40000; } class Programmer extends Employee { int bonus = 10000; public static void main(String args[]) { Programmer p = new Programmer(); System.out.println("程序员薪资:" + p.salary); System.out.println("程序员奖金:" + p.bonus); } }</code>
なぜ Java は多重継承をサポートしないのですか? (追加予定)
複雑さを軽減して言語を簡素化するために、Java はクラスを介した多重継承をサポートしていません。
メソッドの書き換えとメソッドのオーバーロード
final
キーワードの機能
final
キーワードは、メソッドのオーバーライドとクラス拡張を防ぐために使用されます:
final
フィールド: 再割り当てできません。 final
メソッド: オーバーライドできません。 final
クラス: 継承できません。 参考リンク:https://www.php.cn/link/9b4192ee086949047cfc64d86d895c2e
以上が継承の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。