Javaポリモーフィズム
Javaポリモーフィズム
ポリモーフィズムとは「多くの形態」を意味し、継承によって相互に関連するクラスが多数ある場合に発生します。
前の章で指定したように、 継承により、別のクラスから属性とメソッドを継承できます。ポリモーフィズム は、これらのメソッドを使用してさまざまなタスクを実行します。これにより、さまざまな方法で単一のアクションを実行できます。
たとえば、 。Animal
というメソッドを持つというスーパークラスについて考えてみますanimalSound()
。動物のサブクラスは、豚、猫、犬、鳥である可能性があります-そして、それらはまた、動物の音の独自の実装を持っています(豚の鳴き声、猫の鳴き声など):
例
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
継承の章extends
から、クラスから継承するためにキーワードを使用していることを思い出してください。
Pig
これで、オブジェクトを作成し、両方でメソッド
Dog
を呼び出すことができます。animalSound()
例
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // Create a Animal object
Animal myPig = new Pig(); // Create a Pig object
Animal myDog = new Dog(); // Create a Dog object
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
}
「継承」と「ポリモーフィズム」を使用する理由と時期
-コードの再利用に役立ちます。新しいクラスを作成するときに、既存のクラスの属性とメソッドを再利用します。