Java Polymorphism
Java Polymorphism
Polymorphism หมายถึง "หลายรูปแบบ" และเกิดขึ้นเมื่อเรามีหลายชั้นเรียนที่เกี่ยวข้องกันโดยการสืบทอด
เช่นเดียวกับที่เราระบุไว้ในบทที่แล้ว การ สืบทอดทำให้เราสืบทอดแอตทริบิวต์และเมธอดจากคลาสอื่น ความ หลากหลาย ใช้วิธีการเหล่านั้นเพื่อทำงานที่แตกต่างกัน ซึ่งช่วยให้เราดำเนินการสิ่งเดียวได้หลายวิธี
ตัวอย่างเช่น ลองนึกถึง superclass ที่เรียกAnimal
ว่าซึ่งมี method ที่เรียกว่าanimalSound()
. คลาสย่อยของสัตว์อาจเป็นหมู แมว สุนัข นก และพวกมันยังมีการใช้เสียงสัตว์ในตัวเอง (หมู oinks และ cat meows ฯลฯ):
ตัวอย่าง
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");
}
}
จำจากบท Inheritanceที่เราใช้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();
}
}
ทำไมและเมื่อใดจึงควรใช้ "การสืบทอด" และ "ความหลากหลาย"?
- มีประโยชน์สำหรับการนำโค้ดกลับมาใช้ใหม่: ใช้แอตทริบิวต์และวิธีการของคลาสที่มีอยู่ซ้ำเมื่อคุณสร้างคลาสใหม่