JavaRush /Blog Jawa /Random-JV /Ngopi #95. Carane ngrampungake masalah warisan pirang-pir...

Ngopi #95. Carane ngrampungake masalah warisan pirang-pirang ing Jawa

Diterbitake ing grup
Sumber: FreeCodeCamp Java minangka salah sawijining basa pemrograman berorientasi obyek sing paling populer digunakake saiki. Amarga iku platform independen, sampeyan bisa nemokake aplikasi Java ing saben jinis piranti lan saben sistem operasi. Lan amarga Jawa relatif gampang kanggo sinau, iku salah siji saka basa sing akeh programer master. Fitur penting ing Jawa sing kudu sampeyan kenal yaiku warisan kelas. Warisan ngidini sampeyan ngoptimalake kode, supaya luwih gampang nggunakake kelas maneh. Nalika sampeyan bisa nggunakake maneh kode sing wis dites lan debug, siklus urip pangembangan piranti lunak dadi luwih cendhek lan luwih murah. Ngopi #95.  Carane ngrampungake masalah warisan pirang-pirang ing Jawa - 1Senajan konsep prasaja ing teori, coding hubungan warisan mbutuhake manungsa waé kanggo rinci. Utamane babagan pirang-pirang warisan, ing ngendi siji kelas anak marisi properti saka pirang-pirang kelas induk. Jawa nolak pirang-pirang hubungan warisan amarga nggawe ambiguitas, nanging ana sawetara cara kanggo entuk efek sing padha yen sampeyan ngerti apa sing kudu ditindakake. Ing artikel iki, kita bakal nliti masalah karo macem-macem warisan lan ngrembug opsi coding alternatif ing Jawa.

Terminologi pusaka

Kadhangkala, kanggo dadi programmer sing sukses, sampeyan kudu dadi pemecah masalah kanggo nemokake solusi kanggo kesalahan utawa masalah sing umum. Iki minangka bagean penting saka coding sing aman lan cerdas. Salah sawijining masalah kasebut ana hubungane karo pirang-pirang warisan (utawa, kekurangane) ing Jawa. Ngopi #95.  Carane ngrampungake masalah warisan pirang-pirang ing Jawa - 2Kanggo ngerti warisan ing Jawa kanthi lengkap, sampeyan kudu ngerti terminologi warisan dhasar saka pemrograman berorientasi obyek (OOP).
  • Kelas minangka struktur pola dhasar ing basa pemrograman berorientasi obyek. Kelas nemtokake sifat umum kanggo klompok obyek.
  • Kelas induk : Uga dikenal minangka kelas dasar utawa kelas super. Kelas induk minangka kelas extensible sing nyedhiyakake fungsi kanggo kelas anak. Iku ngidini kanggo nggunakake maneh. Definisi lan fungsi kelas induk digunakake maneh nalika nggawe kelas anak.
  • Kelas anak : Umume disebut subclass, kelas anak nduweni fungsi saka kelas liyane. Kelas bocah minangka kelas tambahan utawa turunan.
  • Warisan : Hubungan antarane kelas wong tuwa lan anak.

Tipe warisan OOP

Ana akeh basa pemrograman berorientasi obyek populer sing digunakake saiki, kalebu Java, C++, JavaScript, Python, PHP, Ruby, lan Perl. Sanajan warisan minangka konsep umum ing antarane basa OOP iki, ora kabeh jinis warisan ana ing saben basa kasebut. Penting banget kanggo ngerti jinis warisan sing umum lan watesan babagan warisan ing basa tartamtu sing sampeyan gunakake. Yen sampeyan luwih ngerti babagan warisan, sampeyan bakal dadi pangembang sing luwih efektif. Jinis pusaka sing didhukung Jawa kalebu:
  • Warisan tingkat tunggal : Nalika kelas anak marisi fitur saka kelas induk tunggal.
  • Warisan multi-level : Iki minangka wangun multi-level saka warisan tingkat siji. Ing warisan multi-tingkat, kelas anak uga bisa tumindak minangka kelas induk kanggo kelas anak liyane. Hubungan antarane saben level linear - ora ana cabang sing luwih dhuwur tinimbang karo sawetara warisan. Ing kasus iki, kelas anak pungkasan nduweni fungsi saka kabeh tingkat ing ndhuwur.
  • Warisan hirarkis : Kebalikan saka pirang-pirang warisan. Ing warisan hirarkis, kelas induk tunggal nduweni luwih saka siji kelas anak. Dadi tinimbang duwe cabang ing ndhuwur, cabang metu ing ngisor.
  • Warisan Hibrida : Minangka jeneng kasebut, warisan hibrida minangka kombinasi saka jinis warisan liyane.
Saliyane jinis warisan sing kasebut ing ndhuwur, ana jinis liyane sing ora didhukung dening Jawa.
  • Multiple inheritance : Ing pirang-pirang warisan, kelas anak duwe luwih saka siji kelas induk. Senajan Jawa lan JavaScript ora ndhukung sawetara warisan, basa OOP kayata C++.
  • Warisan multi-path : Sato warisan multi-level lan hierarkis, ing warisan multi-path, kelas anak marisi karakteristik lan fungsi saka kelas induk lan sawetara kelas anak saka kelas induk. Wiwit warisan multipath adhedhasar macem-macem warisan, Jawa ora ndhukung panggunaane.

Napa Jawa ora ndhukung pirang-pirang warisan

Masalah utama karo pirang-pirang warisan yaiku bisa nggawe ambiguitas ing kelas bocah. Ing kertas putih taun 1995, desainer utama Jawa James Gosling mratelakake yen masalah karo pirang-pirang warisan minangka salah sawijining alasan Jawa digawe. Kompleksitas sing ana ing pirang-pirang warisan sing paling jelas katon ing masalah berlian. Ing masalah berlian, kelas induk A duwe rong kelas anak sing béda B lan C; yaiku, kelas anak B lan C ngluwihi kelas A. Ngopi #95.  Carane ngrampungake masalah warisan pirang-pirang ing basa Jawa - 3Saiki kita nggawe kelas anak anyar D sing ngluwihi kelas B lan kelas C. Elinga yen kita duwe sawetara warisan (D ngluwihi B lan C), warisan hirarkis (B lan C ngluwihi. A) lan warisan multi-tingkat (D ngluwihi A, B lan C). Ing masalah berlian, anak kelas B lan C oleh warisan cara saka induk kelas A. Loro B lan C nimpa cara dipun warisaken. Nanging cara anyar ing B lan C mbantah saben liyane. Anak pungkasan kelas D marisi loro cara independen lan konflik saka macem-macem tuwane B lan C. Ora cetha cara kelas D kudu digunakake, supaya ambiguity muncul. Basa pemrograman OOP liyane ngetrapake macem-macem cara kanggo ngrampungake ambiguitas pirang-pirang warisan.

Carane ngrampungake masalah warisan pirang-pirang ing Jawa

Mung amarga akeh warisan masalah ora ateges ora ana gunane. Ana akeh kahanan ing ngendi sampeyan pengin siji kelas duwe fungsi saka sawetara kelas liyane. Cukup mikir babagan Tesla Roadster sing bakal sampeyan tuku nalika dadi pangembang piranti lunak sing sukses banget. Karakteristik teknis kasebut adhedhasar kelas mobil sport lan kelas kendaraan listrik. Conto liyane: browser sing sampeyan maca artikel iki. Nduwe fitur saka kelas solusi privasi Internet lan saka kelas browser Internet umum. Nanging sampeyan ora bisa ngluwihi sawetara kelas ing Jawa. Dadi, kepiye basa iki ngatasi masalah warisan pirang-pirang? Jawa nggunakake struktur sing diarani antarmuka. Antarmuka minangka jinis abstrak sing nemtokake prilaku sing bakal ditindakake dening kelas. Amarga padha abstrak, antarmuka ora ngemot instruksi rinci babagan prilaku. Nanging, kelas nyedhiyakake implementasi konkrit saka prilaku antarmuka. Antarmuka duwe sawetara ciri khas:
  • Ora kaya kelas, sampeyan ora nggawe antarmuka instan. Nanging, kelas ngleksanakake antarmuka.
  • Antarmuka mung ngemot definisi konstan umum lan header metode.
  • Antarmuka mung bisa ngluwihi antarmuka liyane, dudu kelas.
  • Antarmuka bisa ngluwihi sawetara antarmuka, lan kelas bisa ngleksanakake macem-macem antarmuka.
Saiki kita bisa kanthi efektif ngatasi masalah berlian kanthi nggunakake antarmuka. Elinga yen mung antarmuka bisa ngluwihi mung antarmuka liyane, lan sembarang kelas sing mbutuhake sawetara ciri warisan kudu ngleksanakake sawetara antarmuka, kita bisa ngalahake kelas masalah diamond. Apa sing biyen dadi kelas A, B, lan C saiki dadi antarmuka A, B, lan C. Antarmuka B lan C isih ngluwihi antarmuka A, nanging ora ana antarmuka sing nduweni fungsi tartamtu, mung prilaku tartamtu. Kelas D tetep kelas sing tanggung jawab kanggo khusus ngleksanakake prilaku ditemokaké ing antarmuka B lan C. Wigati siji prabédan tombol: kelas D ora ngluwihi antarmuka B lan C. Nanging, iku ngleksanakake. Kanthi cara iki, sampeyan ora duwe akeh warisan. Nanging, sampeyan mung ngrampungake masalah kasebut.

Kesimpulan

Pangertosan warisan penting kanggo pangembang Jawa sing efektif. Sampeyan uga penting kanggo ngerti watesan warisan lan solusi sing dibangun ing Jawa kanggo masalah warisan pirang-pirang tradisional. Sinau carane nggawe antarmuka kanggo nggawe maneh efek saka macem-macem warisan ing Jawa bakal nambah produktivitas lan kesempatan nyewa.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION