Javaの継承とポリモーフィズムの違いは何ですか

目次:

Anonim

NS 主な違い Javaの継承とポリモーフィズムの間には 継承により、クラスは既存のクラスのプロパティとメソッドを使用できますが、ポリモーフィズムにより、オブジェクトは複数の方法で動作できます。

オブジェクト指向プログラミング(OOP)は、ソフトウェア開発における一般的なプログラミングパラダイムです。オブジェクトを使用して実際のシナリオをモデル化するのに役立ちます。 Javaは、OOPをサポートするプログラミング言語です。クラスは青写真であり、オブジェクトの作成に役立ちます。クラスには属性と動作があります。属性はプロパティとも呼ばれ、動作はメソッドとも呼ばれます。 OOPの2つの主要な柱は、継承とポリモーフィズムです。

クラス、継承、オーバーロード、オーバーライド、ポリモーフィズム、Java

Javaの継承とは何ですか

Javaの継承は、クラスが既存のクラスのプロパティと動作を使用できるようにするメカニズムです。既存のクラスは、親クラスまたはスーパークラスです。プロパティとメソッドを継承する新しいクラスは、子クラスまたはサブクラスと呼ばれます。継承の主な利点は、コードの再利用性を提供することです。プログラム例は以下のとおりです。

図1:クラスA

図2:クラスB

図3:クラステスト

クラスAにはメソッドsumがあり、2つの値を加算します。クラスBはAを拡張します。subと呼ばれるメソッドがあります。 2つの値を減算します。テストクラスにはmainメソッドがあります。 「obj」はタイプBのオブジェクトです。クラスBはクラスAを継承するため、オブジェクトはクラスAのプロパティとメソッドを使用できます。したがって、オブジェクトはsumメソッドとサブメソッドの両方を呼び出すことができます。

Javaのポリモーフィズムとは

Javaのポリモーフィズムとは、ライフサイクルのさまざまな段階でさまざまな動作を示すオブジェクトを指します。ポリモーフィズムには、主にオーバーロードとオーバーライドの2つのタイプがあります。

オーバーロード

オーバーロードにより、同じクラスまたは同じ名前で異なるパラメーターを持つサブクラスのメソッドが許可されます。これは、「静的バインディング」および「コンパイル時ポリモーフィズム」とも呼ばれます。プログラム例は以下のとおりです。

図4:オーバーライドするJavaプログラム

オーバーロードクラスには、sumと同じ名前の2つのメソッドがあります。 5行目のsumメソッドは、パラメーターを取りません。 2つの値10と20を加算し、結果である30を返します。さらに、11行目のsumメソッドは2つのパラメーターを取得します。これらの2つの値を加算し、結果50を返します。objはmainメソッドのオブジェクトです。 obj.sum()は5行目のsumメソッドを呼び出し、obj.sum(20、30)は11行目のsumメソッドを呼び出します。同じオブジェクトがそれに応じて関連するメソッドを呼び出します。したがって、同じオブジェクトでも状況に応じて動作が異なります。

オーバーライド

オーバーライドにより、スーパークラスにすでに存在するメソッドに実装を提供できます。これは、「遅延バインディング」、「動的バインディング」、および「ランタイムポリモーフィズム」とも呼ばれます。プログラム例は以下のとおりです。

図5:車両クラス

図6:車のクラス

図7:テストクラス

Vehicleクラスにはdisplayというメソッドがあります。 CarクラスはVehicleクラスを拡張し、独自の実装を持つdisplayというメソッドもあります。車両はスーパークラスであり、車はサブクラスです。テストクラスにはmainメソッドがあります。 「c」はタイプCarのオブジェクトです。 displayメソッドを呼び出すと、Carクラスのdisplayメソッドの実装を確認できます。スーパークラスにはdisplayメソッドがありますが、サブクラスのdisplayメソッドによってオーバーライドされます。

Javaにおける継承とポリモーフィズムの違い

意味

継承は、新しいクラスがスーパークラスのプロパティとメソッドを使用できるようにするメカニズムですが、ポリモーフィズムは、オブジェクトが複数の方法で動作する機能です。したがって、これがJavaの継承とポリモーフィズムの主な違いです。

実装

使用法

さらに、継承はコードの再利用性を提供しますが、ポリモーフィズムはコンパイル時と実行時にそれに応じてメソッドを呼び出すことを可能にします。したがって、これはJavaの継承とポリモーフィズムのもう1つの違いです。

結論

OOPの2つの主要な柱は、継承とポリモーフィズムです。 Javaの継承とポリモーフィズムの主な違いは、継承によってクラスが既存のクラスのプロパティとメソッドを使用できるのに対し、ポリモーフィズムによってオブジェクトが複数の方法で動作できることです。

リファレンス:

1.「Javaでのメソッドのオーバーロード–Javatpoint」。 Www.javatpoint.com、ここから入手可能2。 「Javaでのメソッドのオーバーライド–Javatpoint」 Www.javatpoint.com、こちらから入手可能3。 「Javaでの継承–Javatpoint。」 Www.javatpoint.com、ここから入手できます。

Javaの継承とポリモーフィズムの違いは何ですか