inheritance

15
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0

Upload: shay

Post on 14-Jan-2016

50 views

Category:

Documents


0 download

DESCRIPTION

Inheritance. Matakuliah: T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan: 4 Tahun: 2008 Versi: 1/0. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Menjelaskan konsep – konsep pewarisan sifat dari suatu kelas di Java - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Inheritance

Inheritance

Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4Tahun : 2008Versi : 1/0

Page 2: Inheritance

Bina Nusantara

Learning Outcomes

Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: – Menjelaskan konsep – konsep pewarisan

sifat dari suatu kelas di Java– Mendeskripsikan superclass dan

subclass– Melakukan override method dari

superclass

Page 3: Inheritance

Bina Nusantara

Outline Materi

• Why Inheritance ?• Superclass dan Subclass.• Yang dapat dilakukan di Subclass.• Keyword super.• Contoh inheritance.• Overriding VS Overloading.• Final Class and Method

Page 4: Inheritance

Bina Nusantara

Why Inheritance ?

• Dapat memperoleh variabel – variabel dan fungsi-fungsi dari kelas lainnya yang sudah ada.

• Powerful feature.• Deklarasi secara implicit maupun explicit.• Semua class di Java termasuk class yang

membangun Java API, merupakan turunan dari class Object

Page 5: Inheritance

Bina Nusantara

Superclass dan Subclass

• Class yang mengambil dari class lain disebut Subclass ( derived class, extended class atau child class)

• Superclass disebut juga sebagai kelas induk (parent class)

• Subclass diberikan hak dan diwariskan untuk mengakses data member ( fields/variables, methods, and nested classes ) yang ada pada Superclass.

• Constructor bukan member jadi tidak diwariskan oleh Subclass.

• Memungkingkan menambah data member yang baru pada Subclass.

Page 6: Inheritance

Bina Nusantara

Yang Dapat Dilakukan di Subclass

• Sebuah Subclass diwariskan semua hak akses baik secara public maupun protected oleh Superclass-nya, tidak memandang dimana package dari subclass itu berada.

• Jika subclass memiliki package yang sama dengan superclass maka subclass juga akan mendapat pewarisan member package-private dari superclass-nya.

• Gunakan extends untuk mengakses kelas induknya.

• Tidak diperbolehkan untuk menerima pewarisan secara ganda (multiple inheritance) lebih dari 1 kelas induk

Page 7: Inheritance

Bina Nusantara

Keyword super

• Keyword this menunjuk pada objek yang ada di dalam class.

• Keyword super menunjuk pada superclass dari kelas pemanggilnya.

• 2 cara penggunaan keyword super :– Memanggil superclass constructor.

• Contoh : super() atau super( parameters )

– Memanggil superclass method.• Contoh : super.method( parameters )

public void cetakRadius(){

System.out.println(“Radius lingkaran adalah ” + supper.getRadius() );}

Sudah didefinisikan dahulu di superclass

Page 8: Inheritance

Bina Nusantara

Contoh Inheritance

• Kelas induk (superclass) : Bicycle.javapublic class Bicycle { public int gear; public int speed;

// constructor dari kelas Bicycle dengan pasing parameter public Bicycle( int startSpeed, int startGear ) { gear = startGear; speed = startSpeed; }

public void setGear ( int newValue ) { gear = newValue; }

public void applyBrake ( int decrement ) { speed -= decrement; }

public void speedUp ( int increment ) { speed += increment; }}

Page 9: Inheritance

Bina Nusantara

Contoh Inheritance ( lanjutan …)

• Kelas anak (Subclass) : MountainBike.javapublic class MountainBike extends Bicycle { // Kelas MountainBike menambahkan 1 field public int seatHeight;

// Kelas MountainBike memiliki 1 constructor public MountainBike( int startHeight, int startSpeed, int startGear ) { super(startCadence, startSpeed, startGear); seatHeight = startHeight; } // Kelas MountainBike menambahkan 1 fungsi public void setHeight ( int newValue ) { seatHeight = newValue; }}

extends Bicycle = turunan dari class Bicycle

Page 10: Inheritance

Bina Nusantara

Keuntungan Inheritance

Keuntungannya dalam OOP : Reusability

Ketika behavior (method) dideklarasikan dalam superclass, behavior tersebut otomatis diwariskan ke seluruh subclass

Dapat meng-enkode method hanya sekali dan method tersebut dapat digunakan oleh seluruh subclass

Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya sendiri dan parent-nya

Page 11: Inheritance

Bina Nusantara

Overriding VS Overloading

• Overriding :– Subclass memodifikasi method yang telah didefinisikan

oleh superclass.– Fungsi yang dideklarasi di subclass harus sama

signature-nya (nama, jumlah dan tipe data parameter) dan return value method-nya dengan yang ada superclass

• Overloading :– Lebih dari satu fungsi yang memiliki nama yang sama

dengan yang ada di superclass.– Fungsi yang dideklarasi di subclass tidak harus sama

signature-nya (nama, jumlah dan tipe data parameter) dan return value method-nya dengan yang ada superclass

Page 12: Inheritance

Bina Nusantara

Overriding VS Ocerloading

• Contoh Overridingpublic class Hewan { public void cetak(){ System.out.println("Ini adalah method dari kelas Hewan"); }

}

Kelas Induk

public class Bebek extends Hewan{ public void cetak (){

System.out.println("Ini adalah kelas Bebek"); } public static void main(String [] args){

Bebek objB = new Bebek();Hewan objH = new Hewan();objH.cetak();objB.cetak();

}}

Fungsi cetak yang override dari fungsi cetak() superclass-nya. Memiliki signature yang sama,Begitu juga dengan tipe pengembalian fungsinya

Page 13: Inheritance

Bina Nusantara

Final Class and Method

Final Class Class yang tidak bisa di-extends Untuk mendeklarasikan final class, kita tulis,

public final ClassName{. . .

}

Contoh:

public final class Person { . . .

}

Contoh lain dari final class adalah class wrapper dan String.

Page 14: Inheritance

Bina Nusantara

Final Class and Method ( lanjutan ... )

Method Final Method yang tidak bisa di-override Untuk mendeklarasikan final method, kita tulis,

public final return_Type method_Name ( parameters ){

. . .}

Contoh :public final String getName(){ return name; }

method static secara otomatis merupakan method final.

Page 15: Inheritance

Bina Nusantara

Referensi

• Introduction to Java Programming. 7ed. Liang. 2009. Chapter 10, hal 357

• Java Software Solution. 5ed. Lewis & Loftus. 2007. Chapter 8, hal 467

• Inheritance and polymorphismhttp://home.cogeco.ca/~ve3ll/jatutor5.htm

• Learning Java Language - Inheritance

http://java.sun.com/docs/books/tutorial/java/IandI/subclasses.html

• Overriding and Hiding Methodhttp://java.sun.com/docs/books/tutorial/java/IandI/override.html

• Final Classhttp://www.tech-faq.com/final-class.shtml

• Final Method http://www.tech-faq.com/final-method.shtml