Tuesday, April 17, 2012

overloading dan overriding


OverLoading Dan OverRiding
  1. Overloading
OverLoading adalah membuat dua atau lebih method dengan nama yang sama dalam satu class tetapi method – method tersebut harus dapat dibedakan antara satu dengan yang lainnya, baik dalam jumlah parameter maupun tipe parameter.
Contoh source code:
class Mobil
{
                String warna;
                int tahunproduksi;
               
                public Mobil(String warna, int tahunproduksi)
                {
                                this.warna = warna;
                                this.tahunproduksi = tahunproduksi;
                }
               
                public Mobil()
                {
                }
               
                void info()
                {
                                System.out.println("Warna: "+this.warna);
                                System.out.println("Tahun: "+this.tahunproduksi);
                }
}

class MobilKonstruktor
{
                public static void main(String args[])
                {
                                                Mobil mobilku = new Mobil("Biru",2009);
                                                mobilku.info();
                                               
                                                Mobil mobilmu = new Mobil();
                                                mobilmu.info();
                }
}

  1. Overriding
OverRiding adalah kemampuan class anak untuk memodifikasi atau mendefenisikan kembali variable dan method dari class induknya. Proses ini akan dirubah variable dan method dari kedua class tersebut (class induk dan class anak).
Ada 2 alasan mengapa melakukan OverRiding :
a.       Mendefenisikan kembali method class induk secara total
b.      Menambahkan kembali behaviour tertentu pada method class induk.
Contoh source code :
class Sepeda
{
                int kecepatan=0;
                int gir=0;
               
                void ubahGir(int pertambahanGir)
                {
                                gir=gir+pertambahanGir;
                                System.out.println("Gir: "+gir);
                }
                void tambahkecepatan(int pertambahankecepatan)
                {
                                kecepatan=kecepatan+pertambahankecepatan;
                                System.out.println("Kecepatan: "+kecepatan);
                }
}
class SepedaGunung extends Sepeda
{
                void ubahGir(int pertambahanGir)
                {
                gir=2*(gir+pertambahanGir);
                System.out.println("Gir: "+gir);
                }
}
class SepedaGunungAction
{
                public static void main (String args[])
                {
                                SepedaGunung sepedaku = new SepedaGunung();
                               
                                sepedaku.tambahkecepatan(10);
                                sepedaku.ubahGir(1);
                }
}

Perbedaan OverLoadiong dan OverRiding dapat dilihat pada table berikut :

OverLoading
OverRiding
Terjadi dalam
Satu class
Dua Class (class super dan subclass
Terjadi pada
Method
Method
Nama method
Sama
Sama
Parameter
Beda (Jumlah parameter dan tipe parameter
Sama (Jumlah parameter dan tipe parameter)
Kesimpulan
Hasilnya serupa tapi tak sama
Sama dan ditimpa

Share

0 comments:

Post a Comment