150 likes | 346 Views
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
E N D
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 • Mendeskripsikan superclass dan subclass • Melakukan override method dari superclass
Outline Materi • Why Inheritance ? • Superclass dan Subclass. • Yang dapat dilakukan di Subclass. • Keyword super. • Contoh inheritance. • Overriding VS Overloading. • Final Class and Method
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
Superclass dan Subclass • Class yang mengambil dari class lain disebut Subclass ( derived class, extended class atau child class) • Superclass disebut juga sebagai kelas induk (parentclass) • Subclass diberikan hak dan diwariskan untuk mengakses data member ( fields/variables, methods, and nestedclasses ) yang ada pada Superclass. • Constructor bukan member jadi tidak diwariskan oleh Subclass. • Memungkingkan menambah data member yang baru pada Subclass.
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
Keyword super • Keyword this menunjuk pada objek yang ada di dalam class. • Keyword super menunjuk pada superclass dari kelas pemanggilnya. • 2 cara penggunaan keywordsuper : • Memanggil superclassconstructor. • Contoh : super() atau super( parameters ) • Memanggil superclassmethod. • Contoh : super.method( parameters ) public void cetakRadius(){ System.out.println(“Radius lingkaran adalah ” + supper.getRadius() ); } Sudah didefinisikan dahulu di superclass
Contoh Inheritance • Kelas induk (superclass) : Bicycle.java public class Bicycle { publicint gear; publicint 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 voidapplyBrake ( int decrement ) { speed -= decrement; } public void speedUp ( int increment ) { speed += increment; } }
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
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
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 valuemethod-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 valuemethod-nya dengan yang ada superclass
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
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.
Final Class and Method ( lanjutan ... ) Method Final • Method yang tidak bisa di-override • Untuk mendeklarasikan final method, kita tulis, public finalreturn_Typemethod_Name ( parameters ){ . . .} Contoh : public final StringgetName(){ return name; } method static secara otomatis merupakan method final.
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