TUJUAN BELAJAR:
Setelah mempelajari bab ini, diharapkan mampu:
1. Memahami konsep polymorphism dengan overloading dan
overriding dalam PBO
2. Memahami dan menerapkan Prosedur polymorphism dengan
overloading dan overriding dalam PBO
3. Merancang dan Membuat Kode Program OOP yang menerapkan
polymorphism dengan overloading dan overriding
4. Menguji Program Aplikasi PBO yang menerapkan polymorphism
dengan overloading dan overriding
Contoh:
Sebuah method bernama tulisData() yang berfungsi untuk
menampilkan data string, tentu tidak bisa menangani masukan
berupa data yang lain. Solusi yang dapat diberikan yaitu dengan
menyediakan beberapa method dengan nama yang sama dan
masing-masing method memiliki parameter dengan tipe data
yang berbeda.
Overloading ini dapat terjadi pada class yang sama atau pada suatu
parent class dan subclass-nya. Overloading mempunyai ciri-ciri
sebagai berikut:
class Parent {
int x = 5;
public void Info() {
System.out.println(“Ini class Parent”);
}
}
Nilai x = 5
class Pegawai {
/
/
…
}
…
class Kurir extends Pegawai {
…
}
Percobaan 1
String getNama(){
return nama;
}
double getGaji(){
return gaji;
}
void naikkanGaji(){
gaji+=(gaji*persennaikgaji);
}
}
Percobaan 2
Manager2(){
this.Employee("sales");
System.out.println("Konstruktor manager()
dijalankan");
}
Manager2(String dept){
departement=dept;
System.out.println("Konstruktor Manager(String dept)
Dijalankan”);
}
Percobaan 2
Manager2(){
this.Employee("sales");
System.out.println("Konstruktor manager()
dijalankan");
}
Manager2(String dept){
departement=dept;
System.out.println("Konstruktor Manager(String dept)
Dijalankan”);
}
void getDetails(){
System.out.println(departement);
}
Percobaan 3
Program berikut ini menerapkan konsep Virtual Method Invocation
(VMI) dan Polymorphic Arguments. Pertama kali buatlah dalam
satu package class Employee seperti pada program dibawah ini.
void Employee(){
}
class Payroll {
public int calcPayroll(Employee2 emp)
{
int money=emp.salary(); if(emp
instanceof Manager)
money+=((Manager) emp).tunjungan();
return money;
if(emp instanceof Programmer)
money+=((Programmer)emp).bonus();
return money;
}
public static void main(String[] args)
{
Payroll pr=new Payroll();
Programmer prg=new Programmer();
Manager mgr=new Manager();
System.out.println("Payroll untuk Programmer:
"+pr.)
System.out.println("Payroll untuk Manager:"
+pr.calcPayroll(mgr))
}