この記事では、Java でのポリモーフィズムの使用法について例を示して説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
ポリモーフィズムは、オブジェクト指向プログラミング言語の中核機能です。カプセル化と継承は比較的単純なので、ここではポリモーフィズムについて少しだけ説明します。 。 。
1. ポリモーフィズムとは何ですか?
ポリモーフィズムとは、オブジェクトが複数の特性を持つことができ、さまざまなプロパティやメソッドに応答するために特定の状況下でさまざまな状態を示すことができることを意味します。 Java では、ポリモーフィック実装とは、同じ実装インターフェイスを使用して異なるオブジェクト インスタンスを実装することを指します。
たとえば、Parent クラスを定義し、次に文字列を返す getName() メソッドを定義し、仮パラメータが Parent 型であるメンバー メソッド doSomething(Parent obj) を定義し、このメソッド内で obj.getName() を呼び出します。次に、2 つのクラス A と B を定義します。どちらも親クラスから継承し、サブクラスの getName() メソッドをオーバーライドします。最後に、main メソッドで Parent クラスのオブジェクト objP を作成し、objP.doSomething() メソッドを呼び出して、クラス A とクラス B の参照を渡します。出力を観察します。
class Parent { private String name = "parent"; public String getName() { return this.name; } public void doSomething(Parent obj) { //出力クラス名 System.out.println(obj.getName()) } public static void main(String[] args) { Parent objP = new Parent(); // A への参照を渡すと、クラス A の getName メソッドが呼び出されます。 objP.doSomething(new B()); // B への参照を渡すと、クラス B の getName メソッドが呼び出されます。 } } class A extends Parent { private String name = "class A"; //@getName() メソッドを書き換えます public String getName() { return this.name; } } class B extends Parent { private String name = "class B"; () メソッド public String getName() { this.name を返す } }
親クラスの doSomething メソッドは、親クラス自体の getName メソッドではなく、渡したオブジェクトの getName メソッドを多態的に呼び出していることがわかります。
2. Java のインターフェース
Java のインターフェイスは、一連のメソッドの宣言です。インターフェイスにはメソッドの特性のみがあり、メソッドの実装はありません。これらのメソッドは、特定のクラスを通じて他の場所から実装できます。 Java では、インターフェイスを宣言するためにキーワード インターフェイスが使用されます。
インターフェイスを使用したポリモーフィズムの例:
Interface Name { //宣言のみを行い、実装はしません public String getName(); } class A は、Name { private String name = "class A" を実装します。 implements Name { private String name = "class B"; // getName メソッドを実装します public String getName() { return name; } public static void main(String[] args) { Name obj = new A(); System.out.println(obj.getName());
ご覧のとおり、クラス A の名前、class A が出力されます。
PS: クラスがインターフェイス内のすべてのメソッドを実装していない場合は、クラスを抽象として宣言する必要があります。抽象クラスではオブジェクトのインスタンス化は許可されません。
この記事が皆さんの Java プログラミングに役立つことを願っています。