Nama / NIM : Ni Putu Tias Amarwati / 1404505041
Jurusan / Fakultas / Perguruan Tinggi : Teknologi Informasi / Teknik / Universitas Udayana
Jurusan / Fakultas / Perguruan Tinggi : Teknologi Informasi / Teknik / Universitas Udayana
Mata Kuliah : Pemrograman Berorientasi Objek (B)
Dosen : I Putu Agus Eka Pratama, ST., MT.
Dalam Java, semua class, termasuk class yang membangun Java API,
adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkan di
bawah ini.
Beberapa
class di atas class utama dalam hirarki class dikenal sebagai superclass.
Sementara
beberapa class di bawah class pokok dalam hirarki class dikenal sebagai
subclass
dari class tersebut.
Pewarisan adalah keuntungan besar dalam pemrograman berbasis object
karena suatu sifat atau method didefinisikan dalam superclass, sifat ini
secara otomatis diwariskan dari semua subclasses. Jadi, Anda dapat
menuliskan kode method hanya sekali dan mereka
dapat
digunakan oleh semua subclass. Subclass hanya perlu mengimplementasikan perbedaannya
sendiri dan induknya.
Mendefinisikan Superclass dan Subclass
Untuk
memperoleh suatu class, kita menggunakan kata kunci extend. Untuk
mengilustrasikan
ini, kita akan membuat contoh class induk. Dimisalkan kita mempunyai
class
induk yang dinamakan Person.
Sekarang, kita ingin membuat class lain bernama Student. Karena
Student juga sebagai Person, kita putuskan hanya meng-extend class
Person, sehingga kita dapat mewariskan semua properti dan method dari setiap
class Person yang ada. Untuk melakukan ini, kita tulis,
public
class Student extends Person
{
public Student(){
System.out.println(“Inside
Student:Constructor”);
//beberapa
kode di sini
}
// beberapa kode di sini
}
Ketika
object Student di-instantiate, default constructor dari superclass
secara mutlak
meminta
untuk melakukan inisialisasi yang seharusnya. Setelah itu, pernyataan di dalam
subclass
dieksekusi. Untuk mengilustrasikannya, perhatikan kode berikut,
public
static void main( String[] args ){
Student anna = new Student();
}
Dalam
kode ini, kita membuat sebuah object dari class Student. Keluaran dari program
adalah,
Inside
Person:Constructor
Inside
Student:Constructor
Alur
program ditunjukkan sebagai berikut.
Kata Kunci Super
Subclass
juga dapat memanggil constructor secara eksplisit dari superclass terdekat. Hal
ini
dilakukan
dengan pemanggil construktor super. Pemanggil constructor super dalam
constructor
dari subclass akan menghasilkan eksekusi dari superclass constructor yang
bersangkutan,
berdasar dari argumen sebelumnya.
Sebagai
contoh, pada contoh class sebelumnya. Person dan Student, kita tunjukkan contoh
dari
pemanggil constructor super. Diberikan kode berikut untuk Student,
public
Student(){
super( "SomeName", "SomeAddress"
);
System.out.println("Inside
Student:Constructor");
}
Kode
ini memanggil constructor kedua dari superclass terdekat (yaitu Person) dan
mengeksekusinya.
Contoh kode lain ditunjukkan sebagai berikut,
public
Student(){
super();
System.out.println("Inside
Student:Constructor");
}
Kode
ini memanggil default constructor dari superclass terdekat (yaitu Person) dan
mengeksekusinya.
Ada
beberapa hal yang harus diingat ketika menggunakan pemanggil constuktor super:
1.
Pemanggil super() HARUS DIJADIKAN PERNYATAAN PERTAMA DALAM constructor.
2.
Pemanggil super() hanya dapat digunakan dalam definisi constructor.
3.
Termasuk constructor this() dan pemanggil super() TIDAK BOLEH TERJADI DALAM
constructor
YANG SAMA.
Pemakaian
lain dari super adalah untuk menunjuk anggota dari superclass(seperti
reference
this). Sebagai contoh,
public
Student()
{
super.name
= “somename”;
super.address
= “some address”;
}
Overriding Method
Untuk
beberapa pertimbangan, terkadang class asal perlu mempunyai implementasi
berbeda
dari method yang khusus dari superclass tersebut. Oleh karena itulah,
method
overriding
digunakan. Subclass dapat mengesampingkan method yang didefinisikan
dalam
superclass dengan menyediakan implementasi baru dari method
tersebut.
Misalnya
kita mempunyai implementasi berikut untuk method getName dalam superclass
Person,
public
class Person
{
:
:
public String getName(){
System.out.println("Parent: getName");
return name;
}
:
}
Untuk
override, method getName dalam subclass Student, kita tulis,
public class Student extends Person
{
:
:
public String getName(){
System.out.println("Student:
getName");
return name;
}
:
}
Jadi,
ketika kita meminta method getName dari object class Student, method overridde
akan
dipanggil, keluarannya akan menjadi,
Student: getName
Method final dan class final
Dalam
Java, juga memungkinkan untuk mendeklarasikan class-class yang tidak lama
menjadi
subclass. Class ini dinamakan class final. Untuk mendeklarasikan class
untuk
menjadi
final kita hanya menambahkan kata kunci final dalam deklarasi class.
Sebagai
contoh,
jika kita ingin class Person untuk dideklarasikan final, kita tulis,
public
final class Person
{
//area
kode
}
Beberapa
class dalam Java API dideklarasikan secara final untuk memastikan sifatnya
tidak
dapat
di-override. Contoh-contoh dari class ini adalah Integer, Double, dan
String.
Ini
memungkinkan dalam Java membuat method yang tidak dapat di-override. Method
ini
dapat
kita panggil method final. Untuk mendeklarasikan method untuk menjadi
final, kita
tambahkan
kata kunci final ke dalam deklarasi method. Contohnya, jika kita ingin method
getName
dalam class Person untuk dideklarasikan final, kita tulis,
public
final String getName(){
return
name;
}
Method
static juga secara otomatis final. Ini artinya Anda tidak dapat membuatnya override.
SUMBER
Meruvian. Pewarisan dan Inheritance. la11_PewarisanpolyNInter.pdf.
Diakses tanggal 10 Maret 2015
0 komentar:
Posting Komentar