ホームページ >Java >&#&チュートリアル >Java言語継承の使用方法

Java言語継承の使用方法

王林
王林オリジナル
2023-06-10 17:42:431690ブラウズ

Java 言語の継承の使用方法

Java 言語の継承は、オブジェクト指向プログラミングの重要な機能です。これにより、クラス間の接続が緊密になり、コードの再利用性も向上します。」が大幅に改善されました。 Java プログラミングでは、継承を使用して新しいクラスを作成します。新しいクラスは、既存のクラスのすべてのプロパティとメソッドを継承でき、また独自のプロパティとメソッドを追加して既存のクラスを拡張および改善することもできます。この記事では、Java言語の継承の定義、継承の特徴、継承の実装、継承の注意点など、Java言語の継承の使い方を詳しく紹介します。

1. 継承の定義

継承はオブジェクト指向プログラミングにおける重要な機能で、クラスの設計時に既存のクラスのメソッドとプロパティを直接使用できるため、時間を節約できます。そしてエネルギー。 Java では、継承は extends キーワードによって実装され、新しく作成されたサブクラスは親クラスのプロパティとメソッドを継承し、独自のプロパティとメソッドを追加できます。

継承の核心は、サブクラスによる親クラスの継承です。サブクラスは親クラスのすべての非プライベート プロパティとメソッドを取得し、書き換えたり新しいメソッドを追加したりして親クラスを拡張できます。継承関係のある 2 つのクラスは親クラスと子クラスと呼ばれ、親クラスはいくつかの共通のプロパティとメソッドを持ち、子クラスはこれを基に新しいプロパティとメソッドを拡張します。

2. 継承の特徴

  1. コードの再利用性

継承はコードを再利用する方法であり、サブクラスは親クラスのコード、プロパティを継承できます。これにより、同じコードを繰り返し記述するという問題が回避され、コードの再利用性が向上します。継承では、サブクラスは親クラスのメソッドと属性を介して既存のデータにアクセスでき、親クラスの動作と関数も継承できるため、コードの冗長性が減り、既存のコードを使用して新しい関数を実装できます。

  1. 継承階層

Java には、サブクラスによって継承できる複数のクラスがあり、クラス階層を形成します。この構造の最も基本的なクラスは java.lang.Object クラスで、残りのクラスは Object クラスを継承します。この階層では、サブクラスは親クラスのメンバーとメソッドを継承し、これに基づいて新しいメソッドとプロパティを拡張できます。

  1. メソッドの書き換え

継承では、サブクラスが親クラスと同じ名前のメソッドを再定義することができ、このプロセスをメソッドの書き換えと呼びます。メソッドをオーバーライドする場合、サブクラスは親クラスをオーバーライドするための規則に従う必要があります。つまり、メソッド名、パラメーターの型、および戻り値の型が親クラスのもの、またはサブクラスの戻り値の型と同じである必要があります。親クラスの戻り値の型の子である必要があります。サブクラスは、親クラスのメソッドをオーバーライドしないことを選択して、それらを継承することもできます。このプロセスはメソッド継承と呼ばれます。

  1. 継承されたアクセス制御

Java では、メンバー変数とメソッドに対するアクセス権には、パブリック、プライベート、プロテクト、デフォルトの 4 つがあります。このうち、パブリックは最も幅広いアクセス権を持っています。アクセス権: アクセス権限ですが、プライベートには最小限の権限が与えられます。継承では、サブクラスは親クラスのパブリック メンバーと保護されたメンバーを継承できますが、親クラスのプライベート メンバーは継承できません。サブクラスが親クラスの保護されたメソッドとプロパティにアクセスできる場合でも、これらのメソッドとプロパティは他のクラスには表示されません。

3. 継承の実装方法

Java での継承は、キーワード extends を使用して実現できます。構文形式は次のとおりです:

访问修饰符 class subclass-name extends parent-class-name {
   // 子类继承父类的成员和方法
}

サブクラスでは、親を継承できます。 class すべての非プライベート メソッドとプロパティ。親クラスのメソッドをオーバーライドしたり、独自のメソッドとプロパティを追加したりすることもできます。サブクラスは 1 つの親クラスからのみ継承でき、親クラスは複数のサブクラスによって継承できます。

以下は継承の例です:

public class Animal {
   public void move() {
      System.out.println("Animal can move");
   }
}

public class Dog extends Animal {
   public void move() {
      System.out.println("Dog can move");
   }
}

public class TestDog {
   public static void main(String args[]) {
      Animal a = new Animal(); // Animal 对象
      Animal b = new Dog(); // Dog 对象
      
      a.move(); // 执行 Animal 类的方法
      b.move(); // 执行 Dog 类的方法
   }
}

上の例では、Animal クラスが親クラス、Dog クラスがサブクラス、Dog クラスが move() を継承します。親クラス Animal のメソッドを継承し、独自のメソッドを再定義しました。

4. 継承に関する注意事項

  1. コンストラクタは継承できません

Java では、サブクラスが親クラスを継承する場合、コンストラクタは継承できません。 、サブクラスは独自のコンストラクターを定義する必要があります。サブクラスでは、 super キーワードを使用して親クラスのコンストラクターを呼び出し、親クラスを初期化できます。

  1. サブクラスが親クラス メソッドをオーバーライドする場合、アクセス権限をこれ以上厳しくすることはできません

Java では、サブクラスが親クラス メソッドをオーバーライドする場合、アクセス権限が必要です同じか、より厳格であること。 より厳格ではなく、緩いこと。たとえば、親クラス メソッドのアクセス許可はパブリックであり、サブクラス メソッドのアクセス許可をプライベートまたは保護されたアクセス許可に設定することはできません。

  1. 親クラス ポインタはサブクラス オブジェクトを指すことができますが、その逆はできません。

Java のポリモーフィズムにより、親クラス ポインタがサブクラス オブジェクトを指すことができますこの状態を上方変換といいます。しかし、その逆は当てはまらず、たとえば、Dog クラスのポインタは Animal クラスのオブジェクトを指すことはできません。

  1. final メソッドはオーバーライドできません

Java では、親クラスのメソッドが Final として定義されている場合、サブクラスはこのメソッドをオーバーライドできません。 、final メソッドをオーバーライドすることはできません。この制限は、サブクラスが元のメソッドを変更してプログラムの正確さに影響を与えるのを防ぐためです。

  1. 継承と組み合わせ

Java では、継承に加えて、コードを再利用するもう 1 つの一般的な方法が組み合わせです。合成とは、あるクラスのインスタンス オブジェクトを別のクラスのメンバー変数として使用し、そのクラス自身のプロパティとメソッドを拡張することです。継承とは異なり、合成では、継承ではなく合成的な方法で 2 つのクラスが関連付けられます。使用する場合は実際の状況に応じて選択する必要があります。

概要

Java 言語の継承は、コードの再利用を最適化し、開発コストを削減できる重要なオブジェクト指向プログラミング機能です。継承を使用する場合は、プログラムの正確性とセキュリティを確保するために、親クラスとサブクラス、コンストラクターのアクセス権、メソッドの書き換えなどの問題に注意する必要があります。もちろん、実際の開発においては、コードを再利用するには継承だけが最適な方法ではなく、組み合わせて使用​​することも可能ですので、状況に応じて選択してください。

以上がJava言語継承の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。