آموزش مقدماتی جاوا | چند ریختگی
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
چند ریختگی در هنگام ارث بری
مفهوم چند ریختگی زمانی اتفاق می افتد که چند کلاس از طریق وراثت به هم مرتبط شده اند. همانطور که گفتیم کلاس های فرزند، متد ها و ویژگی های کلاس مادر را به ارث می برند. چندریختگی به این معنی است که متد هایی که در کلاس مادر نوشته شده اند را دوباره در کلاس فرزند تعریف کنیم. همانطور که در مثال زیر میبینید، کلاس های Pig و Dog فرزندان کلاس Animal هستند، پس متد animalSound را از کلاس Animal به ارث می برند. اما کلاس Pig متد به ارث برده شده را بازنویسی کرده است و در نتیجه متن متفاوت و مختص به خود را چاپ می کند. چند ریختگی زمانی کاربرد دارد که یک کلاس مادر و تعداد زیادی کلاس فرزند داریم. یک متد در تمام کلاس های فرزند کار یکسانی انجام می دهد به جز یکی دو تا از کلاس ها. در این موارد می توانیم آن متدِ “تقریباً مشترک” را در کلاس مادر تعریف کرده و در کلاس هایی که نیاز به عملکرد متفاوت این متد دارند، دوباره آن را تعریف کنیم.
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 animalColor() {
System.out.println("The dog is white");
}
}
class MyMainClass {
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();
}
}
خروجی:
The animal makes a sound
The pig says: wee wee
The animal makes a sound
برای ثبت پرسش ابتدا در سایت وارد شوید.