Inheritance ( Penurunan sifat )
Inheritance atau penurunan sifat merupakan ciri utama pemograman berbasis objek, Sifat-sifat yang terdapat pada kelas induk (base class) akan dimiliki oleh kelas turunannya(derived class).
Deklarasi Inheritance
• Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class‐nya.
• Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
• Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class‐nya.
• Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Kelas yang mewariskan Super Class atau Kelas Induk
Kelas yang diwariskan Sub Class atau Kelas Anak
Misal :
kelas B adalah kelas anak dari kelas A, maka sifat sifat dari kelas A
otomatis akan dimiliki juga oleh kelas B.
Jika kelas induk merupakan turunan dari kelas lain, maka data dan method
yang berasal dari kelas tersebut akan ikut diwariskan pula kepada kelas
anaknya.
Contoh :
o Kelas C adalah kelas anak dari kelas B
o Kelas B merupakan kelas anak dari kelas A.
o Maka sifat sifat yang diwariskan kelas A ke kelas B juga akan
diwariskan ke kelas C.
Contoh Program
Output
Polimorfisme
Dalam pemograman berbasis objek, penerapan polimorfisme didefinisikan dengan nama yang sama, namun mempunyai implementasi yang berbeda. Polimorfisme digunakan untuk memudahkan pemograman karena lebih natural. Dengan polimorfisme, kita tidak harus menggunakan nama yang berbeda untuk metode yang mirip secara bahasa.
Dalam bahasa pemograman java, polimorfisme diterapkan dengan mekanisme overloading dan overriding. Overloading berarti menggunakan signature yang berbeda pada metode atau konstruktor dengan nama sama. Sedangkan overreading dilakukan dengan mendefinisikan ulang metode dan konstruktor pada class turunannya( subclass ).
Contoh Program
// mendefinisikan kelas induk
class Penyanyi {
public void bernyanyi ( ) {
System.out.println("Karakteristik nadanya" + "belum didefinisikan");
}
}
// mendefinisikan kelas-kelas turunan dari kelas Penyanyi
class PenyanyiJazz extends Penyanyi {
// melakukan override terhadap method bernyanyi ( )
public void bernyanyi ( ) {
System.out.println("Bernyanyi dengan irama Jazz");
}
}
class Penyanyi {
public void bernyanyi ( ) {
System.out.println("Karakteristik nadanya" + "belum didefinisikan");
}
}
// mendefinisikan kelas-kelas turunan dari kelas Penyanyi
class PenyanyiJazz extends Penyanyi {
// melakukan override terhadap method bernyanyi ( )
public void bernyanyi ( ) {
System.out.println("Bernyanyi dengan irama Jazz");
}
}
class PenyanyiPop extends Penyanyi {
public void bernyanyi ( ) {
System.out.println("Bernyanyi dengan irama Pop");
}
}
class PenyanyiDangdut extends Penyanyi {
public void bernyanyi ( ) {
System.out.println("Bernyanyi dengan irama Dangdut");
}
}
public void bernyanyi ( ) {
System.out.println("Bernyanyi dengan irama Pop");
}
}
class PenyanyiDangdut extends Penyanyi {
public void bernyanyi ( ) {
System.out.println("Bernyanyi dengan irama Dangdut");
}
}
class ContohPolimorfisme {
// melakukan override terhadap method bernyanyi ( )
public static void main (String[] args) {
Penyanyi p;
PenyanyiJazz musmujiono = new PenyanyiJazz ( );
PenyanyiPop audi = new PenyanyiPop ( );
PenyanyiDangdut inul = new PenyanyiDangdut ( );
// p mengacu pada objek PenyanyiJazz
p = musmujiono;
// akan memanggil method pada kelas PenyanyiJazz
p.bernyanyi ( );
// p mengacu pada objek PenyanyiPop
p = audi;
// akan memanggil method pada kelas PenyanyiPop
p.bernyanyi ( );
// p mengacu pada objek PenyanyiDangdut
p = inul;
// akan memanggil method pada kelas PenyanyiDangdut
p.bernyanyi ( );
}
}
// melakukan override terhadap method bernyanyi ( )
public static void main (String[] args) {
Penyanyi p;
PenyanyiJazz musmujiono = new PenyanyiJazz ( );
PenyanyiPop audi = new PenyanyiPop ( );
PenyanyiDangdut inul = new PenyanyiDangdut ( );
// p mengacu pada objek PenyanyiJazz
p = musmujiono;
// akan memanggil method pada kelas PenyanyiJazz
p.bernyanyi ( );
// p mengacu pada objek PenyanyiPop
p = audi;
// akan memanggil method pada kelas PenyanyiPop
p.bernyanyi ( );
// p mengacu pada objek PenyanyiDangdut
p = inul;
// akan memanggil method pada kelas PenyanyiDangdut
p.bernyanyi ( );
}
}
Output
Referensi :
--------------------------------------------------------------------------------------------------------------
Nama : Fitria Ariestasari
Kelas : 2IA14
NPM : 52410844
with Firda Chaerani (52410794)