Inheritance
Salah satu topic penting dalam OOP adalah inheritance atau pewarisan sifat. Dengan inheritance, pengembang software dapat bekerja lebih efisien danlebih cepat. Berkat inheritance, kita dapat menggunakan definisi kelas yang sudah pernah dibuat sebelumnya untuk membuat class-class lain yang menyerupai class tersebut. Perhatikan contoh berikut :
Public class KattWorld{
Public static void main(string args[]){
Katt k = new Katt();
k.speak();
Angora a = new Angora ();
a.speak();
a.jump();
s.speak();
}
}
class Katt{
Public Katt(){
System.out.println(“Katt constructor”);
}
Public void speak(){
System.out.println(“miaw….”);
}
}
class Angora extends Katt{
public void jump(){
System.out.println(“Crash.. Boom..”);
}
}
class Siam extends Katt{
public Siam (){
System out.println(“Siam constructor”);
}
public void speak(){
system.out.println(“murrr…murrr…”);
}
}
Hal pertama yang harus diperhatikan dari conyoh diatas adalah cara melakukan inheritance. Dalam contoh diatas, kita mempunyai satu class bernama Katt. Seiring berjalannya waktu, kita berniat membuat class lain, yang mempunyai sifat-sifat sepeti Katt, tetapi memiliki keunikan sendiri. Contohnya kelas Angora . Berdasarkan niat tersebut, kita dapat memamfaatkan kembali(reuse) class Katt tersebut untuk mewujudkan Angora tanpa harus megulang dari awal hal-hal yang telah kita lakukan dalam kelas Katt.
Kini dikataka bahwa class Katt menjadi parentclass (atau baseclass atau superclass) dari class angora. Sebenarnya, kalau kita berjalan sedikit lagi keatas, java.lang.Object adalah parentclass dari Katt. Secara umum, kita dapat mendefiniskan suatu class sebagai turunan dari base class dengan cara berikut:
Class nama class extend baseclass{
[statement-statement];
}
What’s the big deal?
Dalam class Katt, kita sudah mendefinisikan bahwa instance dari Katt dapa speak(), kita akan mengeong …miauw…. Perhatikan, kita tidak mendefiniskan method speak() pada class Angora . Method speak() diwarisi oleh oleh Angora dari class Katt. Subclass mewarisi method-method, dan field-field dari parentclass. Akan tetapi subclass tidak mewarisi constructor- constructor parentclass.
What the next big deal.??
Posting Komentar