You are on page 1of 4

MODULTEORITAMBAHAN PERTEMUANIX

PEMROGRAMANJAVADASAR PEWARISAN(INHERITANCE)
2007STIKOMBALI

November5,2007 [PEWARISAN/INHERINTANCE]

PENGANTAR
A. PENGERTIANPEWARISAN o Pewarisanmerupakansebuahbentukpenggunaankembali(reusability);dimanaclass barudibuatdariclassyangpernahadayang(biasanya)ditambahfasilitasnya. o Setiap class turunan dapat menjadi class pokok (induk) untuk class turunan yang akan datang. o Dalam pewarisan, constructor tidak diwariskan pada class turunannya, kecuali jika digunakanperintahsuper. B. JENISPEWARISAN o Pewarisan tunggal (single inheritance) merupakan pewarisan dari satu class pokok (induk). o Pewarisanganda(multipleinheritance)merupakanpewarisandariduaataulebihclass pokok. o Javatidakmendukungmultipleinheritance. Sebelum melangkah lebih jauh tentang Pewarisan ada baiknya kita mengingat pelajaran Biologi, maka salahsatucabangilmuBiologiyangdisebutTaksonomi,khususmempelajaripengelompokkanmakhluk makhlukkedalamhirarkikelaskelas.KitamengenalpengelompokkankedalamKingdom,Phylum,Class, Order,Family,Genus,danSpesies. Animal Invertebrata Amphibia Pisces Vertebrata Reptilia Kucing Aves Primata Beruang Terrier GreyHound Mamalia Carnivora Anjing Hound Dalmatian

PemrogramanJavaDasar|TeoriPertemuanIX 2

November5,2007 [PEWARISAN/INHERINTANCE] Dari gambar diatas yang mengambarkan hirarki dari spesies GreyHound terjadi penurunan sifat. GreyhundmenurunkansifatdariHound,yaitumemilikimoncongdankakipanjang.Houndmenurunkan sifatdariAnjing,yaitumenggonggong.Anjingmenurunkansifatdarikarnivora,yaitumemakandaging. CarnivoramenurunkansifatdariMamalia,yaitumelahirkandanmenyusui.Mamaliamenurunkansifat dariVertebrata,yaitumempunyaitulangbelakang.Vertebratamenurunkansifatdaribinatang(makhluk hidup)yaituiabernyawa.Penurunansifatinimenurundaritingkathirarkipalingatasketingkatpaling bawah. Sehingga seekor GreyHound akan hidup bernyawa, mempunyai tulang belakang, menyusui, memakandaging,menggonggongdanmempunyaikakipanjang. Penurunansifat(inheritance)inijugaditerapkanpadasebuahclassdidalampemrogramanOOPdengan Java. Misalnya,dalamdeklarasiprogramJavaberikutini: class mamalia { boolean menyusui =true; // } class Carnivora extends Mamalia { String makanan=Daging; // } class Anjing extends Carnivora { int kaki = 4; //. } class ContohPewarisan { public static void main(String[] arguments) { Anjing hound = new Anjing(); // } } Disini,sebuahclassmenurunkansifatdariclasslainnyadenganmemakaikatakunci

extends.

Sehingga: ClassAnjingmenurunkansifatdariclassCarnivora. ClassCarnivoramenurunkansifatdariclassMamalia Object bound merupakan instance dari class Anjing. Karena ia mempunyai class Anjing maka object houndmempunyaisifatsifat(fielddanmetode)dari: ClassAnjing. ClassCarnivora.KarenaclassAnjingditurunkandariclassCarnivora

PemrogramanJavaDasar|TeoriPertemuanIX 3

November5,2007 [PEWARISAN/INHERINTANCE] ClassMamalia.KarenaclassAnjingditurunkan dariclassCarnivora,yangkemudian diturunkan dariclassMamalia. Sehinggakitadapatmenuliskanprogramberikutini: Anjing hound = new Anjing(); System.out.println( hound.menyusui ); System.out.println( hound.makanan ); System.out.println( hound.kaki ); Class Anjing tidak mendeklarasikan field makanan dan menyusui. Tetapi, object hound mempunyai keduafieldtersebutyangditurunkandariclassCarnivoradanMamalia.

SUPERCLASSDANSUBCLASS
Dalam pemrograman Java, kita menyebut hubungan di antara ketiga class diatas dengan pernyataan sebagaiberikut:
ClassMamaliaadalahsuperclassdariclassCarnivora. ClassMamaliaadalahsuperclassdariclassAnjing. ClassCarnivoraadalahsuperclassdariclassAnjing. ClassCarnivoraadalahsubclassdariclassMamalia. ClassAnjingadalahsubclassdariclassMamalia. ClassAnjingadalahsubclassdariclassCarnivora.

Sebuahsubclassmenurunkansifatsifatdarisuperclassnya. Dalam pemrograman Java, semua class yang tidak mempunyai seperclass selalu diturunkan secara otomatisdariclassjava.lang.Object Dalamcontohdiataspernyataan: class Mamalia { // } Tidak mempunyai kata kunci extends, sehingga tidak mempunyai superclas yang eksplisit. Tetapi Mamaliasebenarnyamempunyaisuperclassjava.lang.Object HalinidisetotomatisolehcompilerJava. Sehinggakitadapatmenambahkanlagipernyataan: ClassMamaliaadalahsubclassdariclassjava.lang.Object Semua class dalam pemrograman Java adalah subclass dari class java.lang.Object (baik langsung maupunsecaratidaklangsung) Pernyataan subclass dan superclass dibedakan lagi menjadi dua, yaitu langsung (direct) dan tidak langsung(indirect).Sebagaicontoh: ClassAnjingadalahindirectsubclassdariclassMamalia ClassAnjingadalahdirectsubclassdariclassCarnivora PemrogramanJavaDasar|TeoriPertemuanIX 4

You might also like