KodeGym/Blog Jawa/Acak/Polimorfisme ing basa Jawa
John Squirrels
tingkat
San Francisco

Polimorfisme ing basa Jawa

Diterbitake ing grup
Hi! Dina iki kita nyimpulake seri pelajaran babagan prinsip OOP. Ing wulangan iki, kita bakal ngomong babagan polimorfisme Jawa. Polimorfisme yaiku kemampuan kanggo nggarap sawetara jinis kaya-kaya jinis sing padha. Kajaba iku, prilaku obyek bakal beda-beda gumantung saka jinise. Ayo padha nliti statement iki. Ayo miwiti karo bagean pisanan: 'kemampuan kanggo nggarap sawetara jinis kaya-kaya padha jinis'. Kepiye macem-macem jinis bisa padha? Iku muni rada aneh: / Cara nggunakake polimorfisme - 1Nyatane, kabeh iku prasaja banget. Contone, kahanan iki muncul nalika nggunakake warisan biasa. Ayo ndeleng cara kerjane. Upaminipun kita duwe kelas induk Cat sing prasaja kanthi metode run() tunggal :
public class Cat {

   public void run() {
       System.out.println("Run!");
   }
}
Saiki kita bakal nggawe telung kelas sing menehi warisan Kucing : Singa , Macan lan Cheetah .
public class Lion extends Cat {

   @Override
   public void run() {
       System.out.println("Lion runs at 80 km/h");
   }
}

public class Tiger extends Cat {

   @Override
   public void run() {
       System.out.println("Tiger runs at 60 km/h");
   }
}

public class Cheetah extends Cat {

   @Override
   public void run() {
       System.out.println("Cheetah runs at up to 120 km/h");
   }
}
Dadi kita duwe 3 kelas. Ayo dadi model kahanan ing ngendi kita bisa nggarap dheweke kaya-kaya padha kelas. Bayangna yen salah siji kucing kita lara lan butuh bantuan saka Dr. Dolittle. Ayo coba nggawe kelas Dolittle sing bisa nambani singa, macan, lan cheetah.
public class Dolittle {

   public void healLion(Lion lion) {

       System.out.println("Lion is healthy!");
   }

   public void healTiger(Tiger tiger) {

       System.out.println("Tiger is healthy!");
   }

   public void healCheetah(Cheetah cheetah) {

       System.out.println("Cheetah is healthy!");
   }
}
Iku misale jek kaya masalah wis ditanggulangi: kelas wis ditulis lan siap kanggo pindhah. Nanging apa sing bakal kita lakoni yen kita pengin ngluwihi program kita? Saiki mung ana 3 jinis: singa, macan, lan cheetah. Nanging ana luwih saka 40 jinis kucing ing donya. Bayangake apa sing bakal kedadeyan yen kita nambahake kelas sing kapisah kanggo manul, jaguar, Maine Coons, kucing omah, lan liya-liyane. Cara nggunakake polimorfisme - 2Program dhewe bakal, mesthi, fungsi, nanging kita kudu terus nambah cara anyar kanggo kelas Dolittle kanggo waras saben jinis kucing. Akibaté, bakal dadi ukuran unprecedented. Iki ngendi polymorphism - "kemampuan kanggo bisa karo sawetara jinis kaya padha jinis padha" - mlebu. Kita ora perlu kanggo nggawe cara kaetung kanggo nindakake bab sing padha - waras kucing. Siji cara cukup kanggo kabeh:
public class Dolittle {

   public void healCat(Cat cat) {

       System.out.println("The patient is healthy!");
   }
}
Cara healCat() bisa nampa obyek Lion , Tiger , lan Cheetah — kabeh iku conto saka Cat :
public class Main {

   public static void main(String[] args) {

       Dolittle dolittle = new Dolittle();

       Lion simba = new Lion();
       Tiger shereKhan = new Tiger();
       Cheetah chester = new Cheetah();

       dolittle.healCat(simba);
       dolittle.healCat(shereKhan);
       dolittle.healCat(chester);
   }
}
Output konsol: Pasien sehat! Pasien sehat! Pasien sehat! Dadi Dolittle kitakelas dianggo karo macem-macem jinis kaya padha jinis padha. Saiki ayo nangani bagean kapindho: "Apamaneh, prilaku obyek bakal beda-beda gumantung saka jinise". Kabeh iku prasaja banget. Ing alam, saben kucing mlaku kanthi cara sing beda. Ing minimal, padha mlaku ing kacepetan beda. Ing antarane telu kucing kita, cheetah paling cepet, dene macan lan singa mlaku luwih alon. Ing tembung liyane, prilaku sing beda. Polimorfisme nindakake luwih saka mung supaya kita nggunakake macem-macem jinis minangka siji. Iki uga ngidini kita ngelingi bedane, njaga prilaku tartamtu kanggo saben wong. Conto ing ngisor iki nggambarake iki. Upaminipun kucing kita, sawise Recovery sukses, mutusaké kanggo seneng roto sethitik. Kita bakal nambah iki menyang kelas Dolittle :
public class Dolittle {

   public void healCat(Cat cat) {

       System.out.println("The patient is healthy!");
       cat.run();
   }
}
Coba nganggo kode sing padha kanggo nambani telung kewan:
public static void main(String[] args) {

   Dolittle dolittle = new Dolittle();

   Lion simba = new Lion();
   Tiger shereKhan = new Tiger();
   Cheetah chester = new Cheetah();

   dolittle.healCat(simba);
   dolittle.healCat(shereKhan);
   dolittle.healCat(chester);
}
Lan iki minangka asile: Pasien sehat! Singa mlayu kanthi kacepetan 80 km/jam. Pasien sehat! Macan mlayu kanthi kacepetan 60 km/jam. Pasien sehat! Cheetah lumaku nganti 120 km / jam Ing kene kita bisa ndeleng kanthi jelas manawa prilaku tartamtu obyek disimpen, sanajan kabeh telung kewan kasebut ditindakake kanthi cara kasebut sawise 'generalisasi' menyang Cat . Amarga polimorfisme, Jawa ngelingi manawa iki ora mung telung kucing. Iku singa, macan, lan cheetah, sing saben mlaku beda. Iki nggambarake kauntungan utama polimorfisme: keluwesan. Nalika kita kudu ngetrapake sawetara fungsi sing dienggo bareng karo macem-macem jinis, banjur singa, macan, lan cheetah mung dadi 'kucing'. Kabeh kewan beda-beda, nanging ing sawetara kahanan kucing iku kucing, preduli saka spesies :) Mangkene sawetara konfirmasi video kanggo sampeyan.
Nalika 'generalisasi' iki ora dikarepake lan kita mbutuhake saben spesies tumindak kanthi beda, saben jinis nindakake perkara dhewe-dhewe. Thanks kanggo polimorfisme, sampeyan bisa nggawe antarmuka siji (set cara) kanggo sawetara saka sudhut kelas. Iki nggawe program kurang rumit. Malah yen kita nggedhekake program kanggo support 40 jinis kucing, kita isih bakal duwe antarmuka paling prasaja: siji roto () cara kanggo kabeh 40 kucing.
Komentar
  • Popular
  • Anyar
  • lawas
Sampeyan kudu mlebu kanggo ninggalake komentar
Kaca iki durung duwe komentar