継承
Java 継承メカニズムの詳細説明: オブジェクト指向プログラム構築の基礎
Java の継承メカニズムにより、オブジェクトは親オブジェクトのすべてのプロパティと動作を継承できます。これは、オブジェクト指向プログラミング (OOP) の中心概念です。 継承を通じて、既存のクラスに基づいて新しいクラスを作成し、親クラスのメソッドとフィールドを再利用し、これに基づいて新しいメソッドとフィールドを追加できます。
継承とは何ですか?
Java の継承メカニズムを使用すると、あるクラス (サブクラスまたは派生クラス) が別のクラス (スーパークラスまたは親クラス) のプロパティとメソッドを継承できます。 サブクラスはスーパークラスのメンバー (フィールドおよびメソッド) にアクセスして、再利用ルールを強制し、クラス階層を促進できます。 継承は、親子関係としても知られる「IS-A」関係を具体化します。
なぜ Java 継承を使用するのですか?
- コードの再利用: 継承により、コードの再利用性が大幅に向上し、同じ機能コードを繰り返し記述することがなくなります。
- メソッドの書き換え (実行時ポリモーフィズムの実装): (追加予定)
相続に関する用語
- クラス: 共通のプロパティを持つオブジェクトのコレクション。オブジェクトを作成するためのテンプレートまたはブループリントです。
- サブクラス/サブクラス: 他のクラスから継承するクラス。派生クラス、拡張クラス、サブクラスとも呼ばれます。
- スーパークラス/親クラス: サブクラスが特性を継承するクラス。基本クラスまたは親クラスとも呼ばれます。
- 再利用性: 新しいクラスを作成するときに既存のクラスのフィールドとメソッドを再利用するメカニズム。
Java 継承構文
class 子类名称 extends 超类名称 { // 方法和字段 }
extends
キーワードは、既存のクラスから派生した新しいクラスを作成することを意味します。 「拡張」は拡張された機能を意味します。 Java の用語では、継承されたクラスは親クラスまたはスーパークラスと呼ばれ、新しいクラスはサブクラスまたは子クラスと呼ばれます。
上の図は、Programmer
がサブクラス、Employee
がスーパークラスであることを示しています。両者の関係は Programmer IS-A Employee
であり、プログラマーは一種の従業員であることを意味します。
例: Programmer.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); } }
Java の継承型
Javaの継承はクラスの継承関係により、主に単一継承、多層継承、階層継承の3種類に分けられます。
注: Java はクラスを介した多重継承をサポートしていません。
クラスが複数のクラスを継承することを多重継承と呼びます。例: Java での多重継承
単一継承の例
あるクラスが別のクラスを継承することを、単一継承と呼びます。以下の例では、Dog
クラスは Animal
クラスを継承するため、単一継承になります。
Test継承.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(); } }
マルチレベル継承の例
継承チェーンがある場合、それを多レベル継承と呼びます。以下の例では、BabyDog
クラスが Dog
クラスを継承し、さらにそのクラスが Dog
クラスを継承するため、マルチレベル継承になります。 Animal
class 子类名称 extends 超类名称 { // 方法和字段 }
階層継承の例
2 つ以上のクラスが 1 つのクラスから継承することを階層継承と呼びます。以下の例では、Dog
クラスと Cat
クラスの両方が Animal
クラスから継承しているため、階層的な継承になります。
Test継承3.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); } }
なぜ Java は多重継承をサポートしないのですか? (追加予定)
複雑さを軽減して言語を簡素化するために、Java はクラスを介した多重継承をサポートしていません。
メソッドの書き換えとメソッドのオーバーロード
- メソッドのオーバーライド: サブクラスは、親クラスで宣言されたメソッドの特定の実装を提供します。
- メソッドのオーバーロード: 同じクラス内では、メソッド名は同じですが、パラメーターの数または型が異なります。
final
キーワードの機能
final
キーワードは、メソッドのオーバーライドとクラス拡張を防ぐために使用されます:
-
final
フィールド: 再割り当てできません。 -
final
メソッド: オーバーライドできません。 -
final
クラス: 継承できません。
参考リンク:https://www.php.cn/link/9b4192ee086949047cfc64d86d895c2e
以上が継承の詳細内容です。詳細については、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のクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。
