Java polimorfizm
Java polimorfizm
Polimorfizm "ko‘p shakllilik" degan ma’noni anglatadi va u bir-biri bilan vorislik orqali bog‘langan ko‘plab sinflar mavjud bo‘lganda yuzaga keladi.
Oldingi bobda aytganimizdek, vorislik boshqa sinfdan atribut va metodlarni meros qilib olish imkonini beradi. Polimorfizm esa bu metodlardan turli vazifalarni bajarish uchun foydalanadi. Bu bitta amalni turli usullarda bajarish imkonini beradi.
Masalan, animalSound() nomli metodga ega Animal nomli ota sinfni (superclass) tasavvur qiling. Hayvonlarning voris sinflari (subclass) cho‘chqalar, mushuklar, itlar, qushlar bo‘lishi mumkin — va ularning har biri hayvon ovozini o‘zicha amalga oshiradi (cho‘chqa xurillaydi, mushuk miyovlaydi va h.k.):
Misol
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");
}
}
Vorislik bobidan eslang: sinfdan meros olish uchun extends kalit so‘zidan foydalanamiz.
Endi Pig va
Dog obyektlarini yaratib, ularning ikkalasida ham animalSound() metodini chaqirishimiz mumkin:
Misol
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();
}
}
Nima uchun va qachon "vorislik" va "polimorfizm"dan foydalanish kerak?
- Bu koddan qayta foydalanish uchun foydali: yangi sinf yaratganda mavjud sinfning atributlari va metodlaridan qayta foydalaning.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
