ポリモーフィズムは、単一のアクションをさまざまな方法で実行できる概念です。これは、ギリシャ語の 2 つの単語、poly と morphs に由来しています。 「ポリ」は多数を意味し、「モーフ」は形を意味します。今後、ポリモーフィズムにはさまざまな形式が含まれます。オブジェクト指向プログラミングは、クラスまたはデータ型に応じてオブジェクトを異なる方法で処理するプログラミング言語の機能として定義できます。基本的に、これは派生クラスがメソッドを再定義する機能として定義できます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
理解
ポリモーフィズムには、コンパイル時ポリモーフィズムと実行時ポリモーフィズムの 2 種類があります。コンパイル時の多態性はメソッドのオーバーロードによって実行され、実行時の多態性はメソッドのオーバーライドによって実行されます。動的メソッド ディスパッチとも呼ばれる実行時ポリモーフィズムは、オーバーライドされたメソッドの呼び出しがコンパイル時とは関係なく実行時に解決されるプロセスです。ここで、オーバーライドされたメソッドは、親クラスの参照変数を通じて呼び出されます。また、ランタイムポリモーフィズムはデータメンバーによって実現できません。
ポリモーフィズムによりどのように作業が簡単になるのでしょうか?
これはオブジェクト指向プログラミングの特性です。ポリモーフィズムを使用すると、クラスが共通のインターフェイスを持っている場合でも、クラスは異なる機能を示すことができます。したがって、この長期用語は基本的な概念を説明していると言えます。ポリモーフィズムの注目すべき点は、使用方法が同じであるため、さまざまなクラスで動作するすべてのコードで、使用されているクラスについて知る必要がないことです。
これはオブジェクト指向プログラミングの特性です。ポリモーフィズムを使用すると、クラスが共通のインターフェイスを持っている場合でも、クラスは異なる機能を示すことができます。したがって、この長期用語は非常に基本的な概念を説明していると言えます。注目すべき点は、使用方法が同じであるため、さまざまなクラスのすべての作業コードは、使用されているクラスについて知る必要がないことです。
ポリモーフィズムの現実世界のシナリオを考えてみましょう。ボタンの例を見てみましょう。ある程度の圧力を加えることでボタンをクリックできることはわかっていますが、ボタンを押したときの出力やその使用方法についてはわかりません。ここで注意すべき点は、結果はどちらの方法でも使用方法に影響を与えないということです。
基本的な目標は、ニーズに応じて交換可能なオブジェクトを作成することです。
ポリモーフィズムで何ができるのですか?
子クラスが親クラスで宣言されたメソッドと同じメソッドを持つ場合、それをメソッドのオーバーライドと呼びます。
言い換えると、子クラスがその親クラスが宣言したメソッドの実装を提供する場合、それはメソッドのオーバーライドと呼ばれます。メソッドをオーバーライドする際に覚えておくべき事項は次のとおりです:
- メソッドの名前は、親クラスで指定されているものと同じである必要があります
- メソッドには、親クラスで言及されているものと同じパラメータも必要です。
- 継承、つまり IS-A 関係が存在する必要があります。
ポリモーフィズムを使用しますか?
クラスに、名前は同じでパラメーターが異なる複数のメソッドがある場合、それはメソッドのオーバーロードと呼ばれます。
実行する操作が 1 つだけであると仮定すると、メソッドと同じ名前を付けるとプログラムが読みやすくなります。 Java でメソッドをオーバーロードする方法は次のとおりです。
- 引数の数の変更
- データ型の変更
ただし、Javaではメソッドの戻り値の型だけを変更するとそれができません。
メリット
- プログラマーが、テストおよび実装するために一度作成されたコードとクラスを再利用するのに役立ちます。 (コードの再利用性)
- 単一の変数名に複数のデータ型 (int、float、double、long など) の変数を格納できます。
- プログラムの可読性が向上します。
なぜポリモーフィズムを使用する必要があるのですか?
動的ポリモーフィズムと静的ポリモーフィズムとは別に、一部の Java プログラミング特性は、2 つの主要なタイプ以外のポリモーフィズムを示します。
これらは – 強制、ポリモーフィックパラメータ、および演算子のオーバーロードです
強制
非常に簡単な例で強制を理解しましょう。値「coercion class:」を持つ文字列を考えてください。値 1 を持つ別の整数を考えてください。では、文字列値を整数値と連結するとどうなるでしょうか?この連結の出力は「強制クラス: 1」になります。これがいわゆる強制です。暗黙的な型変換は、型エラーを防ぐために行われます。コンパイラがそれを行います。
演算子のオーバーロード
演算子のオーバーロード (メソッドのオーバーロードとも呼ばれます) を始める前に、例を見てみましょう。値が「Operator」である文字列と、「Overloading」である別の文字列を考えてみましょう。 2 つの整数を加算するのと同じように、これら 2 つの文字列にプラス記号 (+) を使用します。 (+) はこれら 2 つの文字列を連結します。 2 つの整数の場合、2 つの整数の合計が返されます。 1 つのシンボルまたは演算子が、使用方法に応じてその意味を変える機能を持つ場合、示されるタイプの多態性は演算子のオーバーロードと呼ばれます。
パラメータ
ポリモーフィズムでは、オブジェクトはさまざまな形で現れることがあります。 Java では、-
のような次のいずれかの方法でオブジェクトへのアクセスを許可することを指します。1.親クラスまたはスーパークラスの参照変数を使用する
2.存在するクラスの参照変数を使用します。
なぜポリモーフィズムが必要なのでしょうか?
ポリモーフィズムが必要な主な理由は、この概念が継承の実装に広く使用されているためです。これは、同じ外部インターフェイスを共有する際に、オブジェクトがさまざまな内部構造を持つことができるようにする上で重要な役割を果たします。それは多くの人にマッピングされるものであると明確に述べられています。
範囲
バインディングとは、メソッド呼び出しをメソッド本体に接続することです。 2種類のバインディングをご用意しております。
静的バインディング (早期バインディング): オブジェクトのタイプがコンパイル時に決定される場合。
動的バインディング (遅延バインディング): オブジェクトのタイプが実行時に決定される場合。
結論
したがって、これはオブジェクト指向プログラミングの非常に重要な機能の 1 つとみなされます。ポリモーフィズムの実例について話すと、人は同時に異なる特性を持つ可能性があります。たとえば、男性は同時に息子であり、夫であり、従業員でもあります。したがって、同じ人でも状況が異なれば、異なる行動を獲得します。これは、オブジェクト指向の用語ではポリモーフィズムと呼ばれ、オブジェクト指向プログラミングの重要な特性です。
以上がポリモーフィズムとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい
