abstract - Universitas Budi Luhur Kampus C Salemba

Download Report

Transcript abstract - Universitas Budi Luhur Kampus C Salemba

Inheritance
Inheritance


Software reusability
Menciptakan class baru dari class yang sudah ada
- Menggunakan data dan behaviors (tingkah laku/method) dari
class yang sudah ada
- Ditambahkan dengan kemampuan yg lain

Subclass extends superclass
- Subclass
•
•
•
Lebih khusus / spesialisasi
Behaviors/method diturunkan dari superclass
• dapat diubah
Behaviors (method) tambahan
Inheritace

Superclass and Subclass
• Object suatu class “is an” object dari class yang lain
• Contoh: Mahasiswa adalah Orang.
• Class Mahasiswa diturunkan (inherits) dari class
Orang
•Orang: superclass
•Mahasiswa: subclass
• Superclass merepresentasikan kumpulan banyak objek
yang lebih besar daripada kumpulan objeknya subclass
• Contoh:
• superclass: Kendaraan
• Mobil, truk, perahu, sepeda, …
• subclass: Mobil
• Lebih kecil, kendaraan yg lebih spesifik
Hierarki Inheritance

Hierarki Inheritance
• Hubungan Pewarisan digambarkan seperti
•
pohon keturunan
Tiap class bisa menjadi
• superclass
• Menyediakan data/behaviors untuk class lain
ATAU
• subclass
• Mewarisi data/behaviors dari class lain
CivitasAkademika
Pegawai
Facultas
Administrator
Mahasiswa
Alumni
Staf
Dosen
Hierarki pada Civitas Akademika pada sebuah Universitas
Bangun
Dua Dimensi
Lingkaran
Kotak
Tiga Dimensi
Segitiga
Balok
Kubus
Hierarki Inheritance untuk Bangun
Limas
PENTING !!!

Cara membuat sub class
class nm_KelasTurunan extends nm_KelasDasar
{
<tubuh kelas>
}
Pewarisan data menurut hak
aksesnya
Atribut Akses
public
protected
private
Tanpa atribut
Diwariskan Pada
Kelas Turunan
Kelas Turunan
Tidak Ada
Kelas Turunan dalam
satu paket
Tanpa Inheritance
Dengan Inheritance (Protected)
Dengan Inheritance (Private)
Method
Overriding
Penggunaan Keyword ‘Final’
dalam Inheritance



Penggunaan keyword ‘final’ dalam inheritance dapat
diaplikasikan ke dalam method maupun class
Penggunaan ‘final’ pada method dalam konsep
inheritance adalah untuk mencegah suatu method
di-override di subclass-nya
Sedangkan penggunaan ‘final’ pada class dalam
konsep inheritance adalah untuk mencegah suatu
class menjadi superclass dari class/subclass yang
lain (tidak dapat di-extends)
Penggunaan Keyword ‘Final’
dalam method

Contoh final method :
Penggunaan Keyword ‘Final’
dalam class

Contoh final class :
Abstract Class

Abstract class merupakan superclass yang dibuat
sebagai dasar untuk kemudian digunakan oleh
subclass, di mana implementasi dari method yang
tidak dibuat di dalam superclass-nya tersebut harus
diimplementasikan oleh masing-masing subclassnya
sesuai dengan fungsinya masing-masing

Dengan demikian, superclass tersebut dapat
memastikan bahwa subclass-nya pasti akan memiliki
method yang telah ditentukan sebelumnya
Abstract Class

Beberapa aturan tentang abstract class yang
perlu diperhatikan adalah sebagai berikut :
1. Method yang tidak memiliki implementasi
pada suatu class harus dideklarasikan
sebagai abstrak dengan menggunakan
keyword abstract
Abstract Class
2. Kita tidak dapat membuat instance (objek)
dari abstract class, umumnya agar dapat
digunakan abstract class harus diturunkan
terlebih dahulu, di mana class hasil
turunannya tersebut harus meng-override
semua method abstrak dari superclassnya
dan membuat implementasinya (sehingga
method tersebut bukan lagi merupakan
method abstrak) baru kemudian subclass ini
dapat dibuat instance-nya
Abstract Class
3. Jika ada satu saja method abstrak (baik
yang didapat dari superclass-nya sebagai
hasil dari turunan maupun yang
dideklarasikan di dalam class itu sendiri)
yang tidak diimplementasikan, maka class
tersebut juga harus dideklarasikan sebagai
abstrak dengan menggunakan keyword
abstract
Abstract Class
Abstract Class

Hasil eksekusi program :
Abstract Class


Seperti yang terlihat pada contoh program yang
mengunakan konsep Abstract Class tidak ada
perintah “new A();” karena memang kita tidak
diperbolehkan membuat instance (objek) dari
abstract class (class A)->lihat aturan abstract class
nomor 2
Class B pada contoh sebelumnya meng-override
abstract method milik superclassnya (class A) dan
membuat implementasinya sehingga class B
tersebut dapat dibuat instance-nya
Abstract Class

Jika seandainya class B diatas tidak meng-override dan
membuat implementasi dari method abstrak milik
superclass-nya, maka class B tersebut juga harus
dideklarasikan sebagai class abstrak. Berarti ia masih
memiliki method abstrak yang didapat dari superclass-nya
(lihat aturan abstract class nomor 3), sehingga dalam hal
ini class B tersebut tidak dapat dibuat instance-nya (lihat
aturan abstract class nomor 2)
Latihan Abstract Class


Abstract class bangun ruang
• Mempunyai method abstract set alas dan set tinggi
• Mempunyai method abstract get alas dan get tinggi
• Mempunyai method abstract get luas
Class segitiga turunan bangun ruang
• Punya atribut alas dan tinggi
• Implementasi method set alas dan set tinggi
• Implementasi method get alas dan get tinggi
• Implementasi method get luas  ½ (alas*tinggi)
Latihan Inheritance



Class segitiga
• Punya atribut alas dan tinggi
• Implementasi method set alas dan set tinggi
• Implementasi method get alas dan get tinggi
• Implementasi method get luas  ½ (alas*tinggi)
Class prisma turunan dari segitiga
• Punya atribut tinggi prisma
• Punya method set tinggi prisma
• Punya method get tinggi prisma
• Punya method get volume  luas alas * tinggi
Class utama
• Buat obyek prisma
• Isikan atribut-atribut alas, tinggi, dan tinggi prisma
• Tampilkan luas segitiga
• Tampilkan volume prisma