ポリモーフィズムと動的バインディング
ポリモーフィズムを理解します。1つのインターフェースに複数の実装を持たせます。オブジェクトの型に応じて実行されるメソッドが決まる動的バインディングを学びます。
「ポリモーフィズムと動的バインディング」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。
定義
ポリモーフィズムとは、1つの参照型で異なるサブクラスのオブジェクトを指せることです。メソッドを呼び出すと、変数の型ではなく実際のオブジェクトに基づいて適切なバージョンが実行されます。
なぜ便利ですか
これにより、柔軟で再利用しやすいコードを書けます。たとえば、AnimalのListにはDogとCatを格納でき、speak()を呼び出すと、それぞれに適した処理が正しく実行されます。別々のコードパスを用意する必要はありません。
動的バインディング
動的バインディングとは、どのメソッド本体を実行するかの決定が実行時に行われることです。JVMはメソッドを選択するとき、宣言された型だけでなく実際のオブジェクトの型を確認します。
統一した呼び出し
ポリモーフィズムを使うと、すべてのサブクラスを同じ方法で扱えます。各オブジェクトで同じメソッドを呼び出せば、JVMが適切なバージョンを選択します。その結果、コードをより簡潔に短くできます。
日常の例
例: Shapeが親クラスです。CircleとSquareはdraw()をオーバーライドします。Shapeのリストをループすると、各要素に対してdraw()が呼び出され、適切なバージョンが実行されます。これが実際の開発でのポリモーフィズムです。
コード: ポリモーフィズムの例
コード: DogとCatはspeak()をオーバーライドします。Animalの配列には異なるオブジェクトを格納できます。それぞれの呼び出しで適切なバージョンが自動的に実行され、ポリモーフィズムの動作が確認できます。
public class Main {
static class Animal {
void speak() {
System.out.println("Some animal sound");
}
}
static class Dog extends Animal {
@Override
void speak() {
System.out.println("Woof!");
}
}
static class Cat extends Animal {
@Override
void speak() {
System.out.println("Meow!");
}
}
public static void main(String[] args) {
Animal[] pets = { new Dog(), new Cat(), new Animal() };
for (Animal a : pets) {
a.speak(); // dynamic binding picks correct version
}
}
}
ポリモーフィズムの確認
簡単な確認: ポリモーフィズムを使うと、Javaで何ができるようになりますか?
復習
復習: ポリモーフィズムとは、1つの参照で多様な形を扱うことです。動的バインディングが実行時にメソッドを選択するため、柔軟で整理されたコードになります。
よくある質問
「ポリモーフィズムと動的バインディング」レッスンは無料ですか?
はい。「ポリモーフィズムと動的バインディング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。
「ポリモーフィズムと動的バインディング」で何を学びますか?
ポリモーフィズムを理解します。1つのインターフェースに複数の実装を持たせます。オブジェクトの型に応じて実行されるメソッドが決まる動的バインディングを学びます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「ポリモーフィズムと動的バインディング」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- extendsとsuper
- メソッドのオーバーライド
- ポリモーフィズムと動的バインディング