Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: 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
Superclass dan Subclass. Yang dapat dilakukan di Subclass. 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 this menunjuk pada objek yang ada di dalam class. 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.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; // 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 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 Overriding public 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 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