Rumah >Java >javaTutorial >Apakah perbezaan antara kaedah terlebih beban dan mengatasi?
Kaedah Terlebih Muatan lwn. Mengatasi
Kaedah terlebih muatan dan mengatasi ialah dua konsep berbeza dalam pengaturcaraan berorientasikan objek yang berkongsi persamaan: kedua-duanya melibatkan mentakrifkan semula kaedah dalam kelas. Walau bagaimanapun, tujuan dan pelaksanaannya berbeza dengan ketara.
Pembebanan Kaedah
Pemuatan berlebihan kaedah berlaku apabila kelas mengisytiharkan berbilang kaedah dengan nama yang sama tetapi senarai argumen yang berbeza. Ia membolehkan satu kaedah untuk melaksanakan tugas yang berbeza berdasarkan jenis dan bilangan hujah yang disediakan. Contohnya:
public void foo(int a) { ... } public void foo(int a, float b) { ... }
Dalam contoh ini, kelas mentakrifkan dua versi kaedah foo yang berbeza dalam bilangan hujah yang mereka ambil. Apabila memanggil kaedah foo, pengkompil menentukan versi yang hendak digunakan berdasarkan hujah yang diluluskan.
Kaedah Overriding
Kaedah overriding, sebaliknya, melibatkan mentakrifkan semula kaedah dengan senarai hujah yang sama dalam subkelas. Tidak seperti lebihan beban, overriding berlaku apabila kelas anak ingin menyediakan pelaksanaan sendiri kaedah yang diwarisi daripada kelas induk. Untuk berbuat demikian, kelas anak mesti menggunakan anotasi @Override untuk menunjukkan bahawa ia mengatasi kaedah sedia ada:
class Parent { void foo(double d) { ... } } class Child extends Parent { @Override void foo(double d) { ... } }
Dalam contoh ini, kelas Kanak-kanak mengatasi kaedah foo yang diwarisi daripada kelas Induk. Apabila tika kelas Kanak-kanak memanggil kaedah foo, pelaksanaan yang diganti dalam kelas Kanak-kanak akan dilaksanakan.
Atas ialah kandungan terperinci Apakah perbezaan antara kaedah terlebih beban dan mengatasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!