Java の階層継承は、Java の継承のタイプの 1 つです。継承は、オブジェクト指向プログラミング システム (おっと) の重要な機能の 1 つです。継承は、あるクラスが他のクラスのすべての属性と動作を継承または取得するメカニズムです。属性と動作を継承するクラスは親クラス、スーパークラス、または基本クラスと呼ばれ、属性と動作を継承するクラスは子クラスまたは派生クラスと呼ばれます。階層継承では、複数の子クラスが単一のクラスを継承するか、単一のクラスが複数の子クラスによって継承されます。 Java での継承の使用は、コードの再利用性と動的なポリモーフィズム (メソッドのオーバーライド) を目的としています。
下の図を利用すると、階層継承をより明確に理解できます。
広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト上の図の例のように、ClassB と ClassC は同じまたは単一のクラス ClassA を継承します。したがって、ClassA の変数とメソッドは、ClassB と ClassC の両方のクラスで再利用されます。上の図は、複数の子クラスが同じ親クラスを持つことを示しているため、このタイプの継承は階層継承と呼ばれます。
Java での単一継承の構文:
class Subclassname1 extends Superclassname { // variables and methods }
Java の階層継承の構文:
class Subclassname1 extends Superclassname { // variables and methods } class Subclassname2 extends Superclassname { // variables and methods }
「拡張」とは、機能を増やすという意味です。 extends キーワードは継承を示します。つまり、既存のクラスから派生した新しいクラスを作成しています。
以下にさまざまな例を示します:
スーパークラスから変数を継承する Java の階層継承の例。次に、次の例でスーパークラスから変数を継承するための階層継承を理解する Java コードを作成します。
コード:
package P1; class Employee{ float salary = 40000; } class PermanentEmp extends Employee{ double hike = 0.5; } class TemporaryEmp extends Employee{ double hike = 0.35; } public class HerInheritanceDemo { public static void main(String args[]){ PermanentEmp p = new PermanentEmp(); TemporaryEmp t = new TemporaryEmp(); // All objects of inherited classes can access the variable of class Employee System.out.println("Permanent Employee salary is :" +p.salary); System.out.println("Hike for Permanent Employee is:" +p.hike); System.out.println("Temporary Employee salary is :" +t.salary); System.out.println("Hike for Temporary Employee is :" +t.hike); } }
出力:
上記のコードのように、PermanentEmp クラスと TemporaryEmp クラスがサブクラス、Employee がスーパークラスで、これらのサブクラスのオブジェクトがスーパークラスの変数にアクセスしています。これは、Java の階層継承の概念または機能を示しています。
スーパークラスからメソッドを継承する Java の階層継承の例。次に、Java でこれをより明確に理解するために、次の例で Java コードを作成します。
コード:
package P1; class Employee{ float salary = 40000; void dispSalary() { System.<em><i>out</i></em>.println("The Employee salary is :" +salary); } } class PermanentEmp extends Employee{ double hike = 0.5; void incrementSalary() { System.out.println("The Permanent Employee incremented salary is :" +(salary+(salary * hike))); } } class TemporaryEmp extends Employee{ double hike = 0.35; void incrementSalary() { System.out.println("The Temporary Employee incremented salary is :" +(salary+(salary * hike))); } } public class HerInheritanceDemo { public static void main(String args[]){ PermanentEmp p = new PermanentEmp(); TemporaryEmp t = new TemporaryEmp(); // All objects of inherited classes can access the method of class Employee p.dispSalary(); p.incrementSalary(); t.dispSalary(); t.incrementSalary(); } }
出力:
上記のコードのように、PermanentEmp クラスと TemporaryEmp クラスがサブクラス、Employee がスーパークラスで、これらのサブクラスのオブジェクトがスーパークラスのメソッドを呼び出しています。これは、Java の階層継承の概念または機能を示しています。
例: super キーワードを使用してスーパークラスのメソッドを呼び出す場合。次に、次の例を使用して、スーパー キーワードの動作をより明確に理解するために、上記の Java コードを書き直します。
コード:
package P1; class Employee{ float salary = 40000; void dispSalary() { System.out.println("The Employee salary is :" +salary); } } class PermanentEmp extends Employee{ double hike = 0.5; void incrementSalary() { super.dispSalary(); System.out.println("The Permanent Employee incremented salary is :" +(salary+(salary * hike)) ); } } class TemporaryEmp extends Employee{ double hike = 0.35; void incrementSalary() { super.dispSalary(); System.out.println("The Temporary Employee incremented salary is :" +(salary+(salary * hike)) ); } } public class HerInheritanceDemo { public static void main(String args[]){ PermanentEmp p = new PermanentEmp(); TemporaryEmp t = new TemporaryEmp(); // All objects of inherited classes can access the variable of class Employee p.incrementSalary(); t.incrementSalary(); } }
出力:
上記のコードのように、PermanentEmp クラスと TemporaryEmp クラスがサブクラス、Employee がスーパークラスで、サブクラスのメソッド内でスーパークラスのメソッドが「super」キーワードを接頭辞として呼び出しています。 super キーワードは Java の参照変数で、親クラス オブジェクトの変数とメソッドを参照するために使用されます。メイン メソッドでは、サブクラスのオブジェクトが独自のメソッドを呼び出します。これも Java の概念または機能を示しています。
継承は、あるクラスが他のクラスのすべての属性と動作を継承する機能です。 Java の継承のタイプの 1 つは、Java の階層継承です。階層継承では、複数のクラスが 1 つのクラスから属性とメソッドを継承します。
以上がJava の階層継承の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。