Rumah > Java > javaTutorial > teks badan

Apakah perbezaan antara kaedah terlebih beban dan mengatasi?

Mary-Kate Olsen
Lepaskan: 2024-11-09 12:17:02
asal
516 orang telah melayarinya

What's the difference between method overloading and overriding?

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) { ... }
Salin selepas log masuk

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) { ... }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan