Java polimorfizm


ULASHISH

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();
  }
}

O‘zingiz sinab ko‘ring »

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!