a.
Inheritance
Pewarisan merupakan
konsep dalam pemrograman berorientasi objek yang memungkinkan untuk membuat
suatu kelas yang didasarkan pada kelas yang sudah ada sehingga mewarisi semua
metode dan variabelnya.
Keuntungan Inheritance
:
1. Subclass menyediakan state/behaviour yang
spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer
Java untuk menggunakan ulang source code dari superclass yang telah
ada.
2. Programmer Java dapat mendefinisikan superclass khusus
yang bersifat generik, yang disebut abstract class, untuk mendefinisikan
class dengan behaviour dan state secara umum.
Beberapa
aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1.
Java
hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya
memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single
inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.
2.
Subclass
juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada
subclass ini. Misal : class B merupakan subclass dari class A, kita dapat
membuat class baru yang diturunkan dari class B sehingga class baru tersebut
akan memiliki apa yang dimiliki oleh class A dan class B.
3.
Suatu
parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya.
Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member
dapat diakses dari class lain, sangat berhubungan dengan access control
(kontrol pengaksesan).
b.
Keyword This
Java memiliki variabel spesial yang dinamakan
‘this’. Variabel ini digunakan pada suatu objek untuk memanggil metode atau
variabel instansi pada objek yang sama. Maksudnya,
this
,
merujuk pada "objek ini" yaitu objek di mana metode sedang
dijalankan. Jika x adalah variabel instansi dalam suatu objek, maka this
.x
adalah nama lengkap
variabel tersebut jika dipanggil dari dalam objek yang sama. Jika metode suatuMetode()
adalah
metode instansi pada suatu objek, maka this
.suatuMetode()
bisa digunakan untuk memanggil metode tersebut dari objek yang sama. Ketika
komputer menjalankan perintah tersebut, komputer akan mengganti variabel this
dengan objek yang berjalan pada saat itu.
Ada lagi kegunaan lain dari
this
.
Ketika sedang menulis metode instansi, ingin memberikan objek sebagai parameter
aktual. Dalam hal ini, bisa menggunakan this
sebagai parameter aktualnya. Misalnya,
ingin mencetak suatu objek sebagai string, bisa menggunakan perintah "System.out.println(this);
".
Atau ingin mengisi nilai this
ke
dalam variabel lain. Pokoknya, bisa melakukan segala hal seperti layaknya
variabel kecuali mengganti isinya
c.
Keyword Super
Java juga memiliki
variabel spesial yang dinamakan "
super
" untuk digunakan dalam metode
instansi. Variabel super
digunakan dalam kelas turunan. ‘super’
mengacu pada objek di mana metode
tersebut berada, akan tetapi ia merupakan bagian dari kelas super dari objek
tersebut.
Suatu kelas bisa ditambah
atau dimodifikasi dari kelas turunannya. Variabel
super
hanya mengacu pada bagian objek sebelum ia ditambah atau dimodifikasi, atau
dengan kata lain bentuk aslinya sebelum dia diturunkan, yang dalam hal ini sama
dengan kelas supernya. Misalnya kita akan menulis suatu kelas, dan kelas
tersebut memiliki metode instansi bernama suatuMetode()
.
Pernyataan super
.suatuMetode()
berarti
menjalankan suatuMetode()
pada kelas supernya. Jika tidak ada metode sutuMetode()
pada kelas supernya, Java akan menampilkan pesan kesalahan sintaks.
Java memiliki variabel
super
karena
banyak hal yang mungkin tersembunyi pada kelas turunan. Misalnya karena
mengimplementasikan fungsi lain pada kelas turunan dengan nama yang sama (dalam
kaitannya dengan polimorfisme, misalkan).
Ketika membuat metode
baru pada kelas turunan yang memiliki nama dan jenis parameter yang sama dengan
metode pada kelas supernya, metode dari kelas super akan disembunyukan. Dalam
bahasa pemrograman, metode ini menimpa (override) metode dari kelas supernya.
Variabel
super
bisa digunakan untuk mengakses metode aslinya yang didefinisikan di kelas
supernya.
Kegunaan utama dari
super
biasanya untuk memperluas kegunaan metode yang sudah ada, bukan menggantinya
secara keseluuruhan. Metode baru bisa menggunakan super
untuk menjalankan instruksi pada kelas supernya, kemudian menambahkan instruksi
lain pada kelas turunannya.
d.
Overriding
Overriding
adalah kemampuan class turunan untuk memodifikasi methods atau properties dari
class induk. Dengan overriding kita bisa membuat implementasi baru pada methods
atau properties di class turunan yang berbeda dengan methods atau properties
yang ada pada class induk. Jadi
overriding method mempunyai nama method yang sama, jumlah parameter dan tipe
parameter serta nilai kembalian (return) method yang di override.
Perbedaan utama antara
Overloading dengan Overriding adalah pada pemakaian parameter. Pada overloading
kita bisa mengubah parameter, sedangkan pada overriding kita tidak boleh
mengubah parameter.
Ada beberapa keyword yang
bisa dipakai di overriding, antara lain:
a.
Keyword Overridable
Keyword ini digunakan pada methods atau properties di class induk yang menandakan bahwa methods atau properties tadi bisa di-override pada class turunan.
Keyword ini digunakan pada methods atau properties di class induk yang menandakan bahwa methods atau properties tadi bisa di-override pada class turunan.
b.
Keyword Overrides
Keyword ini digunakan pada class turunan yang menandakan bahwa methods atau properties tadi meng-override methods atau properties yang ada di class induk.
Keyword ini digunakan pada class turunan yang menandakan bahwa methods atau properties tadi meng-override methods atau properties yang ada di class induk.
c.
Keyword NotOverridable
Keyword ini digunakan pada methods atau properties di suatu class yang menandakan bahwa methods atau properties tadi tidak bisa di-override pada class turunan.
Keyword ini digunakan pada methods atau properties di suatu class yang menandakan bahwa methods atau properties tadi tidak bisa di-override pada class turunan.
d.
Keyword MustOverride
keyword ini digunakan untuk mendeklarasikan abstract methods atau abstract properties. Hanya ada deklarasi header di sini, tanpa ada
keyword ini digunakan untuk mendeklarasikan abstract methods atau abstract properties. Hanya ada deklarasi header di sini, tanpa ada
0 komentar:
Posting Komentar