Javaでのアップキャスティングとダウンキャスティングとは何ですか? 簡単な説明

公開: 2021-01-22

目次

Javaでのアップキャストとダウンキャスト

Javaでの型キャストとは、あるデータ型から別のデータ型への変換を伴う手順を指します。 これは、自動と手動の両方で実行できます。 プログラマーは自分で手動変換を行う必要がありますが、自動プロセスにはコンパイラーが使用されます。 ダウンキャストとアップキャストは、基本的に2種類のオブジェクト型キャストです。

子オブジェクトと親オブジェクトは、2つの異なるタイプのオブジェクトです。 現在、オブジェクトを初期化する方法は2つあり、その後、子クラスと親クラスが持つプロパティを継承します。 これらの方法は次のとおりです。

  • 子c=new Child():子クラスと親クラスに属するすべてのメンバーにアクセスします
  • Parent p = new Child():親クラスのメンバーと、子クラスでオーバーライドされたメソッドにのみアクセスします

基本的に、親から子への型キャストはアップキャスティングと呼ばれ、子から親への型キャストはダウンキャスティングと呼ばれます。

型キャストシステムは、変数が関数によって正確に処理されているかどうかを確認するために使用されます。 ダウンキャストは暗黙的には不可能ですが、明示的にも暗黙的にもアップキャストを実行できます。

ダウンキャストとアップキャストはどちらもJavaの重要な要素であり、単純な構文を使用して複雑なプログラムを開発できます。 また、多様なオブジェクトをグループ化したり、ポリモーフィズムを使用したりするなど、いくつかの大きな利点があります。

世界のトップ大学からオンラインソフトウェア開発コース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

アップキャスティング

アップキャストでは、子オブジェクトは親クラスオブジェクトへの型キャストです。 このプロセスを使用すると、親から子のクラスの識別されたメソッドと変数に簡単にアクセスできます。 プロセスでは、オーバーライドされたメソッドなど、子クラスの特定のメソッドと変数の一部にのみアクセスする必要があります。 多くの場合、アップキャストは拡大および一般化とも呼ばれます。 アップキャストは暗黙的に実行でき、親クラスのメンバーにアクセスする柔軟性を人々に提供します。

次の例は、プロセスをよりよく理解するのに役立ちます。

例:魚がその1つである、多様なクラスの動物を特徴とする動物クラスがあります。 ここで、動物のクラスが魚のクラスによって拡張されると仮定すると、継承には2つの方法があります。 継承は、オブジェクト指向プログラミングまたはOOPの重要な側面の1つであり、あるクラスが別のクラスの機能を継承できるようにします。 これは、基本クラスのスーパーセットである派生クラスを意味します。 ここでは、基本クラスよりも多くのメソッドが取り上げられている可能性があります。 アップキャスト中に、クラスインターフェイスで発生する可能性がある唯一のことは、メソッドを取得するのではなく、失うことになる可能性があることです。 この結果、コンパイラーは、特別な表記法や明示的なキャストなしでアップキャストを可能にします。

構成と継承

オブジェクト指向プログラミングに関しては、メソッドとデータをクラスにパッケージ化するだけで作成および使用し、その後そのクラスに存在するオブジェクトを使用する可能性が高くなります。 人々は、特定の既存のクラスを使用して、構成を備えた新しいクラスを開発することさえできます。 継承は比較的まれにしか使用されません。 継承は多くの焦点を当てていますが、OPPを学習する際には、開発者がその正しい使用法を知っており、可能な限り単純に使用しようとしないことが重要です。

実際、継承が実際に役立つことがわかったシナリオでのみ、それを使用する必要はほとんどありません。 人が継承または構成を使用する必要があるかどうかを識別する最も簡単な方法の中には、新しいキャストからベースキャストにアップキャストする必要があるかどうかを自問することがあります。 アップキャストが必要な場合は、継承を使用する必要があります。 ただし、それが要件でない場合は、継承の必要性についてさらに詳しく調べる必要があります。

ダウンキャスティング

ダウンキャストは、オブジェクト型キャストの別の形式であり、Javaで許可されていない親クラスにサブクラス参照オブジェクトを指定する際に使用されます。 ダウンキャストを理解するのはそれほど難しくありません。 たとえば、基本クラスと、基本クラスから間接的または間接的に派生するクラスがある場合、基本クラスタイプのオブジェクトが派生クラスに型キャストされるときはいつでも、ダウンキャストと呼ばれます。 その結果、ダウンキャストのように、基本クラスオブジェクトを取得しようと努力し、それを派生クラスタイプに変換することで、継承図をたどります。 ただし、記述されているコードに基づいて、ダウンキャストが意味をなす場合と意味をなさない場合があることに注意することが重要です。

人々がダウンキャスティングシステムを実行するとき、彼らはどんなタイプのコンパイラエラーにも遭遇しません。 ただし、実行時の例外であるjava.lang.ClassCastExceptionに直面します。 では、Javaでダウンキャストが不可能な場合、なぜ人々はそれを実行するのかという疑問が生じます。 簡単に言うと、ダウンキャストは、親クラスによって参照されるオブジェクトがサブクラスに属する特定の状況でのみ使用できます。

ダウンキャストは、あるオブジェクトを別のオブジェクトと比較するときに非常に役立ちます。

ダウンキャスティングが有効かどうかを確認するには、

getClass()システムを使用すると、開発者は渡されたオブジェクトのクラスを理解し、それを現在のクラスと比較できます。 それらが等しくない場合、ダウンキャストは有効ではなく、このプロセスを試してみるのは無意味です。 ダウンキャストの概念は、主にサブタイプへのスーパータイプのキャストを使用します。 このような鋳造プロセスは通常、明示的な方法で行われます。 これは基本的に、大きいサイズのタイプが小さいサイズのタイプに明示的に適合するように作成されていることを意味します。

アップキャスティングとダウンキャスティング

アップキャスティングと。 ダウンキャスティングには、特定の非常に特別な違いがあります。 それらのいくつかは、以下のポインタで簡単に下線が引かれています。

  • アップキャストでは、子オブジェクトは親オブジェクトに型キャストされます。 一方、ダウンキャストに関しては、親クラスオブジェクトの参照が子クラスに渡されることになります。
  • 人々は明示的および暗黙的にアップキャストを実行できますが、ダウンキャストは明示的にのみ実行できます。
  • アップキャストの場合、ユーザーは子クラスの親クラスの変数とメソッドにアクセスできますが、その逆はできません。 ただし、ダウンキャストでは、両方のクラスの変数とメソッドに簡単にアクセスできます。
  • アップキャストでは、特定の子クラスのメソッドにのみアクセスできます。 ダウンキャストを実行するときは、両方のクラスに含まれるすべてのメソッドと変数にアクセスできるようになります。

結論

アップキャスティングはJavaではめったに使用されません。 ほとんどの場合、親クラスのみを処理するコードを開発する必要がある場合に使用します。 子クラスの動作へのアクセスを提供するコードの開発に関しては、ダウンキャストが使用される傾向があります。

Javaを学び、クラウドコンピューティングでも認定を取得したい場合はupGrad クラウドコンピューティングの高度な証明書プログラムを提供しています 7.5か月のオンラインコースは、働く専門家がクラウドコンピューティングの役割に参入できるように特別に設計されています。

フルスタック開発者になる

LIVERPOOLJOHNMOORESのコンピュータサイエンスのマスターに今すぐ申し込む