Pengertian Inheritance dan Polymorphism
Inherintance
Inheritance atau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya. Sebagai contoh, misalkan ada sebuah kelas Titik yang mempunyai kelas turunan Titik3D:
class
Titik
private integer x
private integer y
Titik()
x < 0
y < 0
{end Titik}
public getX() -> integer
-> x
{end getX}
public getY() -> integer
-> y
{end getY}
{end class}
class Titik3D: Titik
private integer z
Titik3D()
z <- 0
{end Titik3D}
public getZ() -> integer
-> z
{end getZ}
{end class}
Keterkaitan antara kelas Titik dan
Titik3D adalah kelas Titik3D merupakan kelas turunan dari kelas Titik. Dalam
hal ini kelas Titik disebut dengan kelas dasar atausuper classatau base
classsedangkan kelas Titik3D disebut
sebagai kelas turunan atau derived
classatau subclass.
Pada contoh di atas, ketika kelas Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada pada kelas Titik walau pada kode programnya metode itu tidak dituliskan, misalkan sebagai berikut:
Pada contoh di atas, ketika kelas Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada pada kelas Titik walau pada kode programnya metode itu tidak dituliskan, misalkan sebagai berikut:
Titik3D
p <- new Titik3D()
integer x <- p.getX()
integer y <- p.getY()
integer z <- p.getZ()
Keuntungan dari pewarisan adalah tidak perlu mengutak atik
kode kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal
membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar
akan mewariskan semua atribut dan kodenya kecuali konstruktor dan destruktor
yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang sama dengan pada
kelas dasar.
Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.
Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.
Polymorphisme
Polymorphisme merupakan suatu aksi yang
memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki
obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan
yang sama sesuai dengan sifat masing-masing obyek.
Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat
menimpa (override), suatu method, yang berasal dari parent class (super class)
dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
Contoh program java nya :
Simpan dengan nama BeautyfullMahasiswa.java
public class BeautyfullMahasiswa extends Mahasiswa{
public void printNama(){
System.out.println(“Hallo, saya Mahasiswa yg baik hati”);
Super.printNama();
}
}
Simpan dengan nama Main.java
public class Main{
public static void main(String[] args]) {
BeautyfullMahasiswa mhs = new BeautyfullMahasiswa();
mhs.setNim(“110533430572”);
mhs.setNama(“Rahmi Wahyulianti”);
mhs.printNim();
mhs.printNama();
}
}
Kemudian compile dan run.
C:\>javac BeautyfullMahasiswa.java
C:\>javac Main.java
C:\>java Main
Kontruksi objek mahasiswa
Nim:110533430572
Hallo, saya Mahasiswa yg baik hati
Nama: Rahmi Wahyulianti
C:\>
Terlihat bahwa disini kita mengoverride method printNama(), dengan menambahkan beberapa teks tambahan, sehingga method printNama(), pada class BeautyfullMahasiswa, memiliki perilaku yang berbeda dengan class Mahasiswa.
0 komentar:
Posting Komentar