29
Inheritance

Inheritance

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Inheritance

Inheritance

Page 2: 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

Page 3: Inheritance

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

Page 4: Inheritance

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

Page 5: Inheritance

Hierarki pada Civitas Akademika pada sebuah Universitas

CivitasAkademika

Pegawai Mahasiswa

StafFacultas

Administrator Dosen

Alumni

Page 6: Inheritance

Hierarki Inheritance untuk Bangun

Bangun

Dua Dimensi Tiga Dimensi

Lingkaran Kotak Segitiga Balok Kubus Limas

Page 7: Inheritance

PENTING !!!

Cara membuat sub class

class nm_KelasTurunan extends nm_KelasDasar{

<tubuh kelas>}

Page 8: Inheritance

Pewarisan data menurut hak aksesnya

Atribut Akses Diwariskan Pada

public Kelas Turunan

protected Kelas Turunan

private Tidak Ada

Tanpa atribut Kelas Turunan dalam satu paket

Page 9: Inheritance

Tanpa Inheritance

Page 10: Inheritance
Page 11: Inheritance

Dengan Inheritance (Protected)

Page 12: Inheritance
Page 13: Inheritance

Dengan Inheritance (Private)

Page 14: Inheritance
Page 15: Inheritance

Method Overriding

Page 16: Inheritance

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)

Page 17: Inheritance

Penggunaan Keyword ‘Final’ dalam method

Contoh final method :

Page 18: Inheritance

Penggunaan Keyword ‘Final’ dalam class

Contoh final class :

Page 19: Inheritance

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

Page 20: Inheritance

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

Page 21: Inheritance

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

Page 22: Inheritance

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

Page 23: Inheritance

Abstract Class

Page 24: Inheritance

Abstract Class

Hasil eksekusi program :

Page 25: Inheritance

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

Page 26: Inheritance

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)

Page 27: Inheritance

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)

Page 28: Inheritance

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

Page 29: Inheritance