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
© Copyright 2024 Paperzz