"Halo, Amigo! Akhire kita wis teka ing bab sing menarik banget. Dina iki aku arep nyritakake babagan pirang-pirang pusaka . Pusaka pirang-pirang pancen alat sing narik banget lan kuat. Lan yen ora ana sawetara masalah, mula Jawa. bakal ndhukung macem-macem warisan kelas. Nanging ora, dadi kita kudu puas karo macem-macem warisan antarmuka . Sing uga apik tenan."

Warisan macem-macem antarmuka - 1

Mbayangno sampeyan lagi nulis game komputer. Lan karakter (obyek sampeyan) kudu tumindak kanthi cara sing rumit: mlaku-mlaku ing peta, ngumpulake barang, nindakake pencarian, komunikasi karo karakter liyane, mateni wong, nylametake wong liya. Contone, sampeyan wis bisa mbagi kabeh obyek dadi 20 kategori. Iki tegese, yen sampeyan lagi bejo, sampeyan bakal bisa kanggo njaluk dening mung 20 kelas kanggo nemtokake obyek. Nanging ing kene sing nyekel: carane akeh wangun unik saka interaksi bakal obyek iki? Saben jinis obyek bisa duwe interaksi unik karo 20 jinis obyek liyane (kita uga ngetang interaksi karo obyek saka jinis padha). Ing tembung liyane, sampeyan kudu nulis kode kanggo 20 x 20 = 400 interaksi! Lan yen jumlah jinis obyek unik ora 20, nanging 100, mula jumlah interaksi bisa dadi 10.000!

"Wah! Saiki aku ngerti kenapa pemrograman pancen angel banget."

"Iku prasaja. Thanks kanggo persil saka abstraksi. Lan ora cilik thanks kanggo sawetara warisan antarmuka."

Kita kerep bisa nyederhanakake interaksi obyek yen peran lan / utawa kabisan sesambungan tinimbang obyek kasebut dhewe. Lan kita wis ngerti, kabisan bisa gampang ditambahake menyang kelas nalika nindakake sawetara antarmuka.

Nalika nulis program gedhe, pangembang biasane nindakake iki wiwit wiwitan:

1) Ngenali kabeh kabisan / peran.

2) Nemtokake interaksi antarane peran kasebut.

3) Banjur mung nemtokake peran kanggo kabeh kelas.

"Mungkin conto?"

"Mesthi wae. Ayo katon ing peran ing kartun «Tom lan Jerry».

kode Jawa Katrangan
interface Moveable
{}
- Peran / kemampuan kanggo mindhah.
interface Eatable
{}
- Peran / kemampuan kanggo dipangan.
interface Eat
{}
- Peran / kemampuan kanggo mangan wong.
class Tom extends Cat implements Moveable, Eatable, Eat
{}
Tom minangka kucing sing nduweni telung peran:
1) Bisa obah
2) Bisa mangan wong
3) Bisa dipangan wong (asu)
class Jerry extends Mouse implements Moveable, Eatable
{}
Jerry minangka tikus sing nduweni peran loro:
1) Bisa obah
2) Bisa dipangan wong
class Killer extends Dog implements Moveable, Eat
{}
Pembunuh minangka asu kanthi rong peran: 1) Bisa obah 2) Bisa mangan wong

Ngerti mung telung peran iki (antarmuka), sampeyan bisa nulis program lan njlèntrèhaké interaksi bener antarane peran iki. Contone, obyek bakal ngoyak (liwat antarmuka Moveable) sawise «sing bisa mangan» lan mlayu saka «sing bisa mangan sampeyan». Lan kabeh iki tanpa ngerti babagan obyek tartamtu. Yen sampeyan nambahake luwih akeh obyek (kelas) menyang program lan njaga peran kasebut, bakal tetep bisa digunakake kanthi apik, ngontrol prilaku obyek sampeyan.