0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan21 halaman

Memahami Polymorphism dalam OOP

Polymorphism memungkinkan objek memiliki bentuk yang berbeda. Misalnya, Manager adalah Employee. Reference variabel dapat menunjuk ke bentuk yang berbeda. Pada virtual method invocation, metode yang dipanggil sesuai dengan runtime type bukan compile type objek. Argumen polimorfik memungkinkan metode menerima nilai subclass. Operator instanceof berguna untuk mengetahui tipe asli argumen.

Diunggah oleh

Naufal Afkaar
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan21 halaman

Memahami Polymorphism dalam OOP

Polymorphism memungkinkan objek memiliki bentuk yang berbeda. Misalnya, Manager adalah Employee. Reference variabel dapat menunjuk ke bentuk yang berbeda. Pada virtual method invocation, metode yang dipanggil sesuai dengan runtime type bukan compile type objek. Argumen polimorfik memungkinkan metode menerima nilai subclass. Operator instanceof berguna untuk mengetahui tipe asli argumen.

Diunggah oleh

Naufal Afkaar
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Pemrograman Berorientasi Objek

Polymorphism

Team Teaching
Universitas Brawijaya
Polymorphism

• Polymorphism adalah kemampuan untuk


mempunyai beberapa bentuk yang berbeda.
Misal: Manager adalah Employee

public class Employee {


public String nama;
public String gaji;

void infoNama(){
[Link](“Nama = ” + nama);
}
}

public class Manager extends Employee {


public String departemen;
}
Contoh

Employee emp = new Manager();

• Reference variabel dari emp adalah Employee.


• Bentuk emp adalah Manager.
Polymorphism: ingat !!

• Satu objek hanya boleh mempunyai satu bentuk


saja.
• Yaitu bentuk yang diberikan ketika objek dibuat.
• Reference variabel bisa menunjuk ke bentuk yang
berbeda.
Virtual Method Invocation
• Virtual method invocation merupakan suatu hal yang sangat
penting dalam konsep polimorfisme.
• Syarat terjadinya VMI adalah sebelumnya sudah terjadi
polymorphism.
• Pada saat objek yang sudah dibuat tersebut memanggil
overridden method pada parent class, kompiler Java akan
melakukan invocation (pemanggilan) terhadap overriding
method pada subclass dan yang seharusnya dipanggil
adalah overridden.
Contoh Virtual Method
Invocation
class Employee{}
class Manager extends Employee{}

Employee emp = new Manager();
[Link]();
Virtual Method Invocation
Yang terjadi pada contoh:
• Objek emp mempunyai behavior yang sesuai dengan
runtime type bukan compile type.
• Ketika compile time emp adalah Employee.
• Ketika runtime emp adalah Manager.
• Jadi :
• emp hanya bisa mengakses variabel milik Employee.
• emp hanya bisa mengakses method milik Manager
Virtual Method Invocation
• Bagaimana dengan konstruktor yang dijalankan?
• Pada pembentukan
Employee emp = new Manager();
• Pertama kali akan menjalankan konstruktor Manager, ketika
ketemu super() maka akan menjalankan konstruktor
Employee (superclass), setelah semua statement dieksekusi
baru kemudian menjalankan konstruktor Manager
(subclass).
Polymorphic Arguments

Polymorphic arguments adalah tipe data suatu


argumen pada suatu method yang bisa menerima
suatu nilai yang bertipe subclass-nya.
Polymorphic Arguments
class Pegawai {

}

class Manajer extends Pegawai {



}

public class Tes {


public static void proses(Pegawai peg) {

}

public static void main(String args[]) {


Manajer man = new Manajer();
proses(man);
}
}
Operator instanceof

Pernyataan instanceof sangat berguna untuk


mengetahui tipe asal dari suatu polymorphic
arguments
Operator instanceof

class Kurir extends Pegawai {

}

public class Tes {


public static void Proses(Pegawai peg) {
if (peg instanceof Manajer) {
… lakukan tugas-tugas manajer…
} else if (peg instanceof Kurir) {
… lakukan tugas-tugas kurir…
} else {
… lakukan tugas-tugas lainnya…
}
}

public static void main(String args[]) {


Manajer man = new Manajer();
Kurir kur = new Kurir();
Proses(man);
Proses(kur);
}
}
Casting object

• Seringkali pemakaian instanceof diikuti dengan


casting object dari tipe parameter ke tipe asal.
• Tanpa adanya casting objek, maka nilai yang akan
kita pakai setelah proses instanceof masih bertipe
parent class-nya, sehingga jika ia perlu dipakai
maka ia harus di casting dulu ke tipe subclass-nya.

if (peg instanceof Manajer) {
Manajer man = (Manajer) peg;
…lakukan tugas-tugas manajer…
}

Kenapa diperlukan polymorphic arguments?

• Mengefisienkan pembuatan program


• Misal Employee mempunyai banyak subclass.
• Maka kita harus mendefinisikan semua method yang
menangani behavior dari masing-masing subclass.
• Dengan adanya polymorphic arguments kita cukup
mendefinisikan satu method saja yang bisa digunakan untuk
menangani behavior semua subclass.
Tanpa polymorphic arguments

public class Tes {
public static void ProsesManajer() {
…lakukan tugas-tugas manajer…
}

public static void ProsesKurir() {


…lakukan tugas-tugas kurir…
}

}

Anda mungkin juga menyukai