Overloading dan Overriding – Tabel Perbedaan mereka yang mendasar

Perbedaan mendasar

Kelebihan beban

Utama

Tujuan

Untuk membebani fungsi yang sama.

Menggunakan metode kelas induk ke subkelas.

Digunakan

Overloading terjadi di kelas yang sama atau bahkan di kelas yang berbeda pula.

Overriding dilakukan di kelas terpisah yang memiliki relasi pewarisan.

Parameter

Parameternya berbeda satu sama lain.

Parameternya sama di subclass dan superclass.

Jenis Pengembalian

Di bawah beban berlebih, jenis pengembalian bisa sama atau berbeda.

Di bawah pengesampingan, jenis pengembalian harus sama.

Polimorfisme

Karena satu fungsi dapat mengambil parameter berbeda dalam kelebihan muatan pada waktu kompilasi. Jadi, ini adalah polimorfisme waktu kompilasi.

Overriding juga dikenal sebagai run time polymorphism.

Dalam bahasa tingkat tinggi, banyak teknik pengkodean diterapkan oleh pembuat kode untuk membuat kode lebih mudah dibaca dan sederhana. Selain itu, banyak fungsi, konstruktor juga dibuat dalam program ini.

Fungsi dan konstruktor tersebut dapat dibebani oleh parameter yang berbeda atau dapat diganti. Mari kita pahami ini secara detail.

Overloading dan overriding adalah dua teknik pemrograman yang digunakan oleh programmer saat menulis kode dalam bahasa tingkat tinggi seperti C++, Java, Python, dan lainnya. Kedua strategi tersebut efektif dalam membuat perangkat lunak menjadi lebih mudah.

Fungsi overloading digunakan untuk membuat kode lebih mudah dibaca. Namun, metode utama akan menimpa kelas induk.

Overloading berbeda dengan Overriding:

Perbedaan antara overloading dan overriding adalah fungsi overloading digunakan dalam kelas yang sama (sebuah konsep dalam bahasa komputer). Di sisi lain, metode satu kelas diwarisi oleh kelas lain di bawah penggantian. Ini menunjukkan bahwa metode yang sama diteruskan dari kelas utama ke subkelas.

Overloading memerlukan penulisan fungsi yang sama berkali-kali dengan parameter yang berbeda. Namun, kami tidak dapat melakukan ini dalam bahasa pemrograman C. Jika tidak, Java mendukung konsep overloading.

Tiga jenis kelebihan muatan dapat dilakukan oleh pemrogram saat membuat kode di Java. Ini adalah konsep yang berguna untuk membuat program menjadi sederhana.

Dalam bahasa komputer, metode utama digunakan dalam konsep pewarisan. Setiap kali suatu fungsi dibuat di superclass dan kemudian digunakan di subclass dengan mewarisi metode kelas utama.

Ini memungkinkan subclass untuk mengesampingkan fungsi kelas induk karena subclass memiliki prioritas saat program dijalankan.

Tabel perbandingan:

Perbedaan mendasar

Kelebihan beban

Utama

Tujuan

Untuk membebani fungsi yang sama.

Menggunakan metode kelas induk ke subkelas.

Digunakan

Overloading terjadi di kelas yang sama atau bahkan di kelas yang berbeda pula.

Overriding dilakukan di kelas terpisah yang memiliki relasi pewarisan.

Parameter

Parameternya berbeda satu sama lain.

Parameternya sama di subclass dan superclass.

Jenis Pengembalian

Di bawah beban berlebih, jenis pengembalian bisa sama atau berbeda.

Di bawah pengesampingan, jenis pengembalian harus sama.

Polimorfisme

Karena satu fungsi dapat mengambil parameter berbeda dalam kelebihan muatan pada waktu kompilasi. Jadi, ini adalah polimorfisme waktu kompilasi.

Overriding juga dikenal sebagai run time polymorphism.

Pengertian Overload?:

Overloading mengacu pada overloading metode yang sama beberapa kali. Dalam bahasa C, kita tidak bisa membebani fungsi. Namun, di Jawa, kita bisa membebani dengan tiga cara.

Jenisnya adalah kelebihan beban konstruksi, kelebihan beban metode, dan kelebihan beban operator.

Ketika seorang programmer menggunakan kembali kode yang sama, argumennya berubah setiap saat. Ini dikenal sebagai underloading.

Overloading default (definisi fungsi yang sama tanpa parameter apa pun) dan overloading parameter (mendefinisikan fungsi dengan parameter) keduanya dimungkinkan.

Operator (+) didefinisikan untuk penambahan dan penggabungan (penautan) dalam kasus kelebihan beban operator. Selain itu, tipe kembalian dari parameter tidak harus sama.

Proses kelebihan dikenal sebagai polimorfisme (menggunakan hal yang sama dalam bentuk terpisah saat kompilasi). Akibatnya, ini disebut sebagai polimorfisme waktu kompilasi.

Contoh kelebihan konstruktor

Kelas X

{

Int a;

X (),

{

a=10;

}

X (int x);

{

a=x;

}

}

Berkelas

{

public static void main (args)

{

X obj= baru X();

X obj1= baru X(100);

System.out.println(obj.a” “);

System.out.println(obj1.a” “);

}

}

Pada contoh di atas, konstruktor X muncul dua kali. Pertama kali tidak ada argumen, dan kedua kalinya ada parameter. Objek yang berbeda (obj, obj1 ) ada untuk memberi tahu nilai.

Demikian pula, seseorang dapat menggunakan fungsi dan operator dalam konsep kelebihan muatan.

Pengertian Override?:

Di bawah pewarisan kelas, pemrogram menggunakan penggantian metode (ketika properti dari satu kelas diwariskan ke kelas lainnya).

Jika subclass atau kelas anak tidak puas dengan eksekusi metode superclass atau induk saat mewarisi, subclass dapat mengganti fungsinya.

Untuk penggantian, metode atau fungsi di kedua kelas harus sama dengan parameter yang ditentukan. Selain itu, tipe dan cakupan pengembalian harus identik di kedua kelas.

Namun, ada dua batasan untuk mengesampingkan. Yang pertama adalah pembuat kode tidak dapat mengesampingkan fungsi statis kelas super. Kerugian lainnya adalah jika tipe fungsi di kelas utama dideklarasikan sebagai final. Di sub-kelas, tidak mungkin untuk menimpanya.

Mari kita pahami dengan sebuah contoh:

Kelas Super

{

acara batal();

{

system.out.println(” OVERRIDE”);

}

}

Kelas Sub memperluas Super

{

acara batal();

{

system.out.println(”LEBIH”);

}

}

Penggantian kelas

{

utama statis publik (string[], args())

{

Sub s= Sub baru();

s.show ();

}

}

Output dari contoh di atas adalah (OVER). Ini menandakan bahwa hanya output dari subclass yang akan muncul karena subclass (Sub) telah meng-override superclass (Super).

Tidak ada hasil dari kelas utama yang akan ada di sana. Selain itu, fungsi (tampilkan) memiliki tipe pengembalian, ruang lingkup, dan argumen yang sama.

Perbedaan Utama Antara Overloading dan Overriding:

  1. Overloading dapat terjadi di dalam satu kelas atau di beberapa kelas. Untuk mengganti fungsi, kita harus membuat setidaknya dua kelas.
  2. Overloading tidak dimungkinkan dalam bahasa pemrograman C. Namun, pengesampingan tidak dapat dilakukan jika salah satu fungsi kelas utama bersifat statis atau final.
  3. Overloading juga dikenal sebagai polimorfisme waktu kompilasi. Di sisi lain, overriding dilakukan pada waktu berjalan (dikenal sebagai polimorfisme waktu berjalan).
  4. Jenis pengembalian dapat berubah saat program dijalankan dengan kelebihan beban. Namun, saat menggunakan overriding, ini tidak mungkin.
  5. Overloading membuat program mudah bagi pembuat kode. Sebaliknya, overriding dilakukan jika pembuat kode tidak puas dengan nilai dari kelas utama.

Referensi:

  1. https://link.springer.com/chapter/10.1007/978-3-642-14107-2_25
  2. https://dl.acm.org/doi/abs/10.1145/1141277.1141608

Saya telah berusaha keras menulis posting blog ini untuk memberikan nilai kepada Anda. Ini akan sangat membantu saya, jika Anda mempertimbangkan untuk membagikannya di media sosial atau dengan teman/keluarga Anda. BERBAGI ADALAH ♥️

Related Posts