download

Matakuliah
Tahun
Versi
: M0074/PROGRAMMING II
: 2005
: 1/0
Pertemuan 6
PEWARISAN AND POLYMORPHISM
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Mahasiswa dapat Menunjukkan
penggunaan konsep pewarisan dan
polymorphism (C3)
2
Outline Materi
•
•
•
•
•
•
•
•
Dasar pewarisan
Keyword super
Urutan eksekusi konstruktor
Method overriding
Keyword final
Class abstrak
Polymorphism dalam pewarisan
Class Objek sebagai superclass Tertinggi
3
DASAR PEWARISAN
• Menggunakan extends
• Java tidak mengijinkan pewarisan
berganda (Multiple Inheritance)
4
DASAR PEWARISAN
CLASS A
DERIVED FROM
DIRECT SUPER-CLASS OF B
DIRECT SUB-CLASS OF B
INDIRECT SUPER-CLASS OF C
INDIRECT SUB-CLASS OF A
CLASS B
DERIVED FROM
DIRECT SUB-CLASS OF A
DIRECT SUPER-CLASS OF C
CLASS C
5
KEYWORD super
• Digunakan untuk mengakses member dari
superclass.
• Digunakan untuk memanggil konstruktor
superclass
6
URUTAN EKSEKUSI
KONSTRUKTOR
class A {
A() {
System.out.println("Konstruktor class A dieksekusi...");
}
}
class B extends A {
B() {
System.out.println("Konstruktor class B dieksekusi...");
}
}
class C extends B {
C() {
System.out.println("Konstruktor class C dieksekusi...");
}
}
7
URUTAN EKSEKUSI
KONSTRUKTOR
class DemoInheritance {
public static void main(String[] args) {
C subOb = new C();
}
}
Hasil eksekusi program :
Konstruktor class A dieksekusi...
Konstruktor class B dieksekusi...
Konstruktor class C dieksekusi...
8
METHOD OVERRIDING
• Jika suatu subclass mendefinisikan
sebuah method yang sama dengan yang
dimiliki oleh superclass, maka method
pada subclass dikatakan akan mengoverride superclassnya
9
KEYWORD final
• Untuk membuat suatu property yang
bernilai konstan
• Untuk mencegah suatu method dioverride
di subclassnya
• Untuk mencegah suatu class diturunkan
dengan menggunakan keyword ini pada
waktu mendeklarasikan class tersebut
10
CLASS ABSTRAK
• Suatu class dimana tidak semua method
yang dideklarasikan di dalamnya memiliki
implementasi
• Method yang tidak memiliki implementasi
pada suatu class harus dideklarasikan
sebagai abstrak dengan menggunakan
keyword abstract
11
POLYMORPHISM DALAM
PEWARISAN
• Variabel Superclass dapat memegang
referensi dari objek subclass
• Method mana yang akan dipanggil
tergantung dari objeknya sendiri dan
bukan dari tipe data variabel yang
memegang referensi dari objek tersebut
• Dynamic method dispatch, method mana
yang akan dieksekusi ditentukan pada
saat eksekusi program bukan pada saat
kompilasi
12
CLASS Object SEBAGAI
SUPERCLASS TERTINGGI
• Class dalam Java yang merupakan class
yang menduduki posisi hierarkis tertinggi,
sehingga semua class yang dibuat dalam
Java pasti merupakan turunan dari class
Object
• Dapat memegang referensi ke
objek(instance) dengan tipe data class
apapun termasuk tipe data array karena
array diperlakukan sebagai objek dalam
Java
13
RINGKASAN
• Beberapa keyword yang terpenting dalam
pewarisan dan polymorphism ini adalah :
– extends
– super
– final
• Keyword yang terpenting dalam class
abstract adalah abstract
14