inheritance
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 PresentationTRANSCRIPT
Inheritance
Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4Tahun : 2008Versi : 1/0
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
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
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
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.
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
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
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; }}
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
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
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
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
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.
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.
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