Overriding and Overloading

Overloading vs Overriding in Java ?

  1. Overloading terjadi pada saat kompilasi sementara Melebihi terjadi saat runtime: Pengikatan kelebihan beban metode panggilan untuk definisi memiliki terjadi pada saat kompilasi namun pengikatan metode ditimpa panggilan untuk definisi yang terjadi saat runtime.
  2. metode statis dapat kelebihan beban yang berarti kelas dapat memiliki lebih dari satu metode statis nama yang sama. metode statis tidak dapat diganti, bahkan jika Anda menyatakan metode statis yang sama di kelas anak itu tidak ada hubungannya dengan metode yang sama dari kelas induk.
  3. Perbedaan yang paling mendasar adalah bahwa overloading sedang dilakukan di kelas yang sama sedangkan untuk dasar dan anak kelas utama yang diperlukan. Utama adalah tentang memberikan implementasi khusus untuk metode yang diwarisi dari kelas induk.
  4. Mengikat statis digunakan untuk metode kelebihan beban dan dinamis mengikat sedang digunakan untuk metode ditimpa / override.
  5. Kinerja: Overloading memberikan kinerja yang lebih baik dibandingkan dengan override. Alasannya adalah bahwa mengikat metode ditimpa sedang dilakukan saat runtime.
  6. metode swasta dan akhir dapat kelebihan beban tetapi mereka tidak dapat diganti. Ini berarti kelas dapat memiliki lebih dari satu metode swasta / akhir dari nama yang sama tetapi kelas anak tidak bisa menimpa metode swasta / akhir dari kelas dasar mereka.
  7. Kembali jenis metode tidak masalah dalam hal metode overloading, dapat sama atau berbeda. Namun dalam kasus metode override metode utama dapat memiliki jenis kembali yang lebih spesifik (lihat ini).
  8. daftar argumen harus berbeda saat melakukan metode overloading. daftar argumen harus sama dalam metode Melebihi.

Overloading example

//A class for adding upto 5 numbers
class Sum
{
    int add(int n1, int n2) 
    {
        return n1+n2;
    }
    int add(int n1, int n2, int n3) 
    {
        return n1+n2+n3;
    }
    int add(int n1, int n2, int n3, int n4) 
    {
        return n1+n2+n3+n4;
    }
    int add(int n1, int n2, int n3, int n4, int n5) 
    {
        return n1+n2+n3+n4+n5;
    }
    public static void main(String args[])
    {
     Sum obj = new Sum();
     System.out.println("Sum of two numbers: "+obj.add(20, 21));
     System.out.println("Sum of three numbers: "+obj.add(20, 21, 22));
     System.out.println("Sum of four numbers: "+obj.add(20, 21, 22, 23));
     System.out.println("Sum of five numbers: "+obj.add(20, 21, 22, 23, 24));
    }
}

Output:
Sum of two numbers: 41
Sum of three numbers: 63
Sum of four numbers: 86
Sum of five numbers: 110
Di sini kita memiliki 4 versi metode yang sama add. Kami overloading metode add () di sini.
package beginnersbook.com;
class CarClass
{
    public int speedLimit() 
    {
        return 100;
    }
}
class Ford extends CarClass
{
    public int speedLimit()
    {
        return 150;
    }
    public static void main(String args[])
    {
     CarClass obj = new Ford();
     int num= obj.speedLimit();
     System.out.println("Speed Limit is: "+num);
    }
}
Output:
Speed Limit is: 150

Overriding merupakan method yang parrent class yang ditulis kembali oleh subclass. Aturan dari method overriding pada Java :

  1. Parameter yang terdapat pada method overriding di subclass harus sama dengan parameter yang terdapat pada parent class.
  2. Aturan hak akses, hak akses method overriding di subclass tidak boleh lebih ketat di bandingkan dengan hak akses method pada parent class.


Berikut ini contoh overriding :
public class Binatang {
    public void begerak(){
        System.out.println("Binatang bergerak sesuai kemampuannya");
    }
    public void berkembangBiak(){
        System.out.println("Binatang berkembang biak sesuai kemampuannya");
    }

}
public class Mamalia extends Binatang {
    //overriding method parent class
    public void begerak(){
        System.out.println("Mamalia bergerak sebagian besar dengan kakinya");
    }    
    public void berlari(){
        System.out.println("Sebagian Mamalia dapat berlari");
    }
}
public class PenggunaanOverriding {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Binatang b = new Binatang();
        Mamalia m = new Mamalia();
        Binatang bm = new Mamalia();
        
        b.begerak();
        m.begerak();
        bm.begerak();
        bm.berkembangBiak();
    }
}

Comments

Popular posts from this blog

Permasalahan dan Tawaran Solusi Dinas Kependudukan dan Pencatatan Sipil Bangkalan