download

Inheritance
Matakuliah
Pertemuan
Tahun
Versi
: T0984 / Algoritma dan Metode Object Oriented Programming II
:4
: 2008
: 1/0
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 )
Sudah didefinisikan dahulu di superclass
public void cetakRadius(){
System.out.println(“Radius lingkaran adalah ” + supper.getRadius() );
}
Bina Nusantara
Contoh Inheritance
• Kelas induk (superclass) : Bicycle.java
public 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.java
public class MountainBike extends Bicycle {
// Kelas MountainBike menambahkan 1 field
public int seatHeight;
extends Bicycle = turunan dari class Bicycle
// 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;
}
}
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 signaturenya (nama, jumlah dan tipe data parameter) dan return value
method-nya dengan yang ada superclass
Bina Nusantara
Overriding VS Ocerloading
• Contoh Overriding
Kelas Induk
public class Hewan {
public void cetak(){
System.out.println("Ini adalah method dari kelas Hewan");
}
}
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();
}
}
Bina Nusantara
Fungsi cetak yang override dari fungsi cetak()
superclass-nya. Memiliki signature yang sama,
Begitu juga dengan tipe pengembalian fungsinya
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 polymorphism
http://home.cogeco.ca/~ve3ll/jatutor5.htm
• Learning Java Language - Inheritance
http://java.sun.com/docs/books/tutorial/java/IandI/subclasses.html
• Overriding and Hiding Method
http://java.sun.com/docs/books/tutorial/java/IandI/override.html
• Final Class
http://www.tech-faq.com/final-class.shtml
• Final Method
http://www.tech-faq.com/final-method.shtml
Bina Nusantara