Overloading melibatkan pendefinisian beberapa fungsi dengan nama yang sama tetapi parameter berbeda dalam kelas yang sama. Overriding terjadi ketika subkelas menyediakan implementasi spesifik untuk metode yang sudah ditentukan dalam superkelasnya, dengan tetap mempertahankan tanda tangan metode. Keduanya mendukung polimorfisme dalam pemrograman berorientasi objek.
Pengambilan Kunci
- Overloading terjadi ketika banyak metode dengan nama yang sama tetapi parameter berbeda ada di kelas. Pada saat yang sama, overriding terjadi ketika subclass menyediakan implementasi baru untuk metode yang didefinisikan dalam superclass-nya.
- Overloading memungkinkan fungsionalitas metode bervariasi berdasarkan parameter input, sedangkan overriding memungkinkan subclass untuk memodifikasi atau memperluas perilaku metode superclass.
- Overloading diselesaikan pada waktu kompilasi sementara overriding ditentukan pada saat runtime.
Kelebihan Beban vs Mengesampingkan
Overloading adalah fitur pemrograman berorientasi objek yang memungkinkan banyak metode dengan nama yang sama tetapi parameter berbeda ada. Overriding adalah proses penyediaan implementasi baru untuk metode di subclass yang sudah ada di superclass.
Overloading memerlukan penulisan fungsi yang sama berkali-kali dengan parameter yang berbeda. Namun, kami tidak dapat melakukan ini dalam bahasa pemrograman C. Jika tidak, Jawa mendukung konsep overloading.
Tiga jenis kelebihan muatan dapat dilakukan oleh pemrogram saat melakukan pengkodean Jawa. 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
Fitur | Kelebihan beban | Utama |
---|---|---|
Definisi | Beberapa metode dengan nama yang sama tetapi parameter yang berbeda dalam kelas yang sama | Mendefinisikan ulang metode yang ada dalam a Subclass pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. nama dan parameter yang sama sebagai metode kelas induk |
Tujuan | Menyediakan berbagai fungsi berdasarkan tipe atau kombinasi data masukan yang berbeda | Mengkhususkan perilaku metode yang diwarisi dari kelas dasar |
Cakupan | Kelas yang sama | Kelas orang tua dan anak |
Mekanisme | Polimorfisme waktu kompilasi berdasarkan tanda tangan parameter | Polimorfisme runtime berdasarkan tipe objek dinamis |
Warisan | Tidak diperlukan | Membutuhkan warisan |
Jenis kembali | Bisa sama atau berbeda | Harus sama atau kovarian (tipe kembalian subkelas dapat berupa tipe yang lebih luas daripada tipe induknya) |
Metode statis | Dapat kelebihan beban | Tidak dapat ditimpa |
Metode pribadi | Dapat kelebihan beban | Tidak dapat ditimpa |
Contoh | add(int a, int b) , add(double a, double b) di kelas yang sama untuk menangani tipe angka yang berbeda | draw() metode di kelas Rectangle ditimpa di kelas Square untuk menggambar persegi, bukan persegi panjang umum |
Apa itu Overload?
Overloading adalah sebuah konsep dalam pemrograman yang memungkinkan suatu kelas memiliki beberapa metode atau konstruktor dengan nama yang sama tetapi parameternya berbeda. Ini memungkinkan satu nama fungsi untuk mewakili fungsi yang berbeda berdasarkan jenis atau jumlah argumen.
Metode Overloading
Dalam metode yang berlebihan, dalam suatu kelas, beberapa metode memiliki nama yang sama tetapi memiliki daftar parameter yang berbeda. Kompiler membedakannya berdasarkan jumlah, jenis, atau urutan parameter, sehingga memungkinkan fleksibilitas dalam pemanggilan fungsi.
Kelebihan Beban Konstruktor
Kelebihan konstruktor menerapkan ide yang sama pada konstruktor kelas. Sebuah kelas dapat memiliki banyak konstruktor dengan daftar parameter yang bervariasi, menyediakan cara berbeda untuk menginisialisasi objek.
Contoh
class Calculator { int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } }
Dalam contoh Java ini, Calculator
kelas mendemonstrasikan metode yang kelebihan beban dengan dua add
metode, satu untuk bilangan bulat dan satu lagi untuk ganda.
manfaat
- dibaca: Overloading meningkatkan keterbacaan kode dengan menggunakan satu nama metode intuitif untuk operasi terkait.
- Fleksibilitas: Ini menawarkan fleksibilitas dengan memungkinkan kombinasi parameter yang berbeda, membuat kode lebih mudah beradaptasi dengan beragam skenario.
- Penggunaan Kembali Kode: Overloading mendorong penggunaan kembali kode karena pengembang dapat menggunakan nama metode yang sama untuk operasi serupa dengan tipe data berbeda.
Apa itu Override?
Overriding adalah konsep dasar dalam pemrograman berorientasi objek yang terjadi ketika subkelas menyediakan implementasi spesifik untuk metode yang sudah ditentukan di superkelasnya. Hal ini memungkinkan subkelas untuk menyediakan versi khusus dari suatu metode, mengubah atau memperluas perilaku yang ditentukan dalam superkelas.
Konsep Kunci
Warisan
Overriding terkait erat dengan konsep pewarisan, di mana subkelas mewarisi properti dan perilaku dari superkelas. Ketika subkelas mengambil alih suatu metode, ia menyediakan implementasinya sendiri sambil tetap mempertahankan tanda tangan metode dari superkelasnya.
Tanda Tangan Metode
Penggantian memerlukan pemeliharaan tanda tangan metode yang sama di subkelas seperti di superkelas. Ini termasuk nama metode, tipe kembalian, dan tipe parameter. Metode yang ditimpa di subkelas dikatakan “mengganti” metode di superkelas.
Contoh
class Shape { void draw() { System.out.println("Drawing a shape"); } } class Circle extends Shape { @Override void draw() { System.out.println("Drawing a circle"); } }
Dalam contoh Java ini, Circle
kelas menimpa draw
metode dari superclassnya Shape
untuk memberikan implementasi khusus untuk menggambar lingkaran.
Penggunaan Anotasi @Override
Grafik @Override
anotasi digunakan dalam bahasa pemrograman seperti Java untuk secara eksplisit menunjukkan bahwa suatu metode dalam subkelas dimaksudkan untuk menggantikan metode di superkelas. Anotasi ini membantu menangkap kesalahan pada waktu kompilasi jika tanda tangan metode tidak cocok dengan metode apa pun di superkelas.
class Circle extends Shape { @Override void draw() { System.out.println("Drawing a circle"); } }
manfaat
- Polimorfisme: Overriding mendukung polimorfisme, memungkinkan objek subkelas diperlakukan sebagai objek superkelas, menyediakan antarmuka yang lebih umum.
- Kustomisasi: Hal ini memungkinkan penyesuaian perilaku untuk subkelas tertentu, memungkinkan setiap subkelas menyesuaikan penerapan metode yang diwariskan.
- Pemeliharaan Kode: Overriding mendorong pemeliharaan kode dengan mengizinkan modifikasi perilaku di lokasi terpusat (superkelas) yang secara otomatis menyebar ke semua subkelas.
Perbedaan Utama Antara Overloading dan Overriding
- Definisi:
- Kelebihan beban: Melibatkan pendefinisian beberapa metode atau konstruktor dengan nama yang sama tetapi parameter berbeda dalam kelas yang sama.
- Utama: Terjadi ketika subkelas menyediakan implementasi spesifik untuk metode yang sudah ditentukan dalam superkelasnya, dengan mempertahankan tanda tangan metode.
- Lokasi:
- Kelebihan beban: Metode atau konstruktor dengan nama yang sama didefinisikan dalam kelas yang sama.
- Utama: Berlangsung di subkelas yang mewarisi metode dari superkelasnya.
- Tanda Tangan Metode:
- Kelebihan beban: Dibedakan berdasarkan jumlah, jenis, atau urutan parameter, sedangkan nama metodenya tetap sama.
- Utama: Memerlukan pemeliharaan tanda tangan metode yang sama (nama, tipe kembalian, dan parameter) di superkelas dan subkelas.
- Anotasi:
- Kelebihan beban: Tidak ada anotasi khusus yang digunakan untuk menunjukkan kelebihan beban.
- Utama: Sering ditunjukkan menggunakan anotasi seperti
@Override
(misalnya, di Java) untuk secara eksplisit mendeklarasikan maksud untuk mengganti metode dari superkelas.
- Hubungan:
- Kelebihan beban: Biasanya digunakan dalam satu kelas untuk menyediakan berbagai cara menggunakan suatu metode.
- Utama: Melibatkan hubungan antara superkelas dan subkelasnya, yang memungkinkan subkelas menyediakan implementasinya untuk metode yang diwariskan.
- Tujuan:
- Kelebihan beban: Meningkatkan keterbacaan dan fleksibilitas kode dengan menyediakan beberapa versi metode untuk jenis atau kombinasi parameter berbeda.
- Utama: Memfasilitasi polimorfisme, penyesuaian, dan pemeliharaan kode terpusat dengan mengizinkan subkelas menyediakan implementasi spesifik untuk metode yang diwariskan.
- https://link.springer.com/chapter/10.1007/978-3-642-14107-2_25
- https://dl.acm.org/doi/abs/10.1145/1141277.1141608
Terakhir Diperbarui : 11 Februari 2024
Sandeep Bhandari meraih gelar Bachelor of Engineering in Computers dari Thapar University (2006). Beliau memiliki pengalaman selama 20 tahun di bidang teknologi. Dia memiliki minat dalam berbagai bidang teknis, termasuk sistem database, jaringan komputer, dan pemrograman. Anda dapat membaca lebih lanjut tentang dia di nya halaman bio.
Overloading dan overriding adalah konsep penting dalam bahasa pemrograman, dan artikel ini berhasil menyajikan gambaran yang jelas dan komprehensif tentang keduanya. Perbandingan konsep sangat membantu.
Artikel berwawasan luas yang menjelaskan perbedaan rumit antara kelebihan beban dan penggantian dalam pemrograman berorientasi objek. Artikel ini berhasil mencakup aspek teoritis dan praktis secara efektif.
Postingan tersebut dengan jelas menjelaskan perbedaan antara kelebihan beban dan penggantian, sehingga memudahkan untuk memahami kedua konsep tersebut. Ini sangat bermanfaat bagi siapa pun yang mempelajari bahasa pemrograman dan pemrograman berorientasi objek.
Meskipun penjelasan tentang kelebihan beban dan penggantian sudah bagus, saya pikir diskusi yang lebih luas mengenai penerapan praktis konsep-konsep ini dalam skenario pemrograman dunia nyata akan membuat artikel ini lebih komprehensif.
Ini adalah artikel yang sangat menarik dan bermanfaat, memberikan pemahaman menyeluruh tentang fungsi kelebihan beban dan penggantian dalam bahasa pemrograman. Saya sangat menyukai tabel perbandingan dan penjelasan rinci tentang konsep-konsep utama.
Pos ini melakukan pekerjaan luar biasa dalam menjelaskan perbedaan mendasar antara kelebihan beban dan penggantian serta penerapannya dalam pemrograman berorientasi objek. Komprehensif namun ringkas.