Rumah  >  Artikel  >  Java  >  Bagaimana untuk menangani nama kaedah pendua di Jawa?

Bagaimana untuk menangani nama kaedah pendua di Jawa?

PHPz
PHPzasal
2023-06-25 16:50:362573semak imbas

Sebagai bahasa pengaturcaraan berorientasikan objek, idea teras Java ialah enkapsulasi, pewarisan dan polimorfisme. Penduaan nama kaedah adalah masalah biasa di Jawa, yang biasanya berlaku semasa pewarisan dan pelaksanaan antara muka. Artikel ini akan memperkenalkan cara menangani nama kaedah pendua dalam Java.

1. Kaedah overloading

Dalam kelas yang sama, nama kaedah boleh sama, yang dipanggil kaedah terlebih beban (Overload). Kelebihan kaedah bermakna berbilang versi nama kaedah yang sama dibenarkan wujud dalam kelas yang sama Senarai parameter mereka adalah berbeza (bilangan parameter yang berbeza atau jenis parameter yang berbeza), tetapi jenis pemulangan kaedah boleh sama atau berbeza. Apabila memanggil kaedah, pengkompil akan menentukan kaedah yang harus dipanggil berdasarkan jenis dan bilangan parameter yang diluluskan.

Sebagai contoh, kod berikut mentakrifkan dua kaedah bernama "tambah" dengan nombor dan jenis parameter yang berbeza:

public class MathUtil {
    public static int add(int x, int y) {
        return x + y;
    }
    
    public static double add(double x, double y) {
        return x + y;
    }
}

Dengan cara ini, apabila kaedah tambah dipanggil, pengkompil akan secara automatik Jenis dan kuantiti, pilih kaedah yang sepadan untuk panggil:

int result1 = MathUtil.add(1, 2); // 调用第一个add方法
double result2 = MathUtil.add(1.0, 2.0); // 调用第二个add方法

2. Nama kaedah menimpa

Dalam proses pewarisan Java, jika subkelas mentakrifkan kaedah dengan nama yang sama dengan kelas induk, maka subkelas akan menimpa kaedah kelas induk dengan nama yang sama. Keadaan ini dipanggil kaedah override.

Prinsip penggantian ialah: kaedah dalam subkelas mesti mempunyai jenis pulangan, nama kaedah dan senarai parameter yang sama seperti kaedah dalam kelas induk (bilangan dan jenis parameter adalah sama). Di samping itu, apabila subkelas mengatasi kaedah kelas induk, hak akses tidak boleh kurang daripada hak akses kaedah dalam kelas induk.

Sebagai contoh, kod berikut mentakrifkan kaedah bernama "cetak", yang wujud dalam kedua-dua kelas induk dan kelas anak:

public class Animal {
    public void print() {
        System.out.println("This is an animal.");
    }
}

public class Cat extends Animal {
    @Override
    public void print() {
        System.out.println("This is a cat.");
    }
}

Apabila kita memanggil kaedah cetakan contoh Kucing, "Ini adalah kucing" akan menjadi output ." kerana kelas Cat mengatasi kaedah cetakan dalam kelas Haiwan.

3. Nama kaedah berulang dalam antara muka

Dalam antara muka Java, anda boleh mentakrifkan berbilang kaedah dengan nama kaedah yang sama, tetapi jenis dan nombor parameter mesti berbeza Ini dipanggil pengulangan kaedah (Mengulang).

Sebagai contoh, kod berikut mentakrifkan antara muka bernama "f", yang mentakrifkan tiga kaedah dengan nama kaedah yang sama, tetapi parameter berbeza:

public interface Example {
    void f(int x);
    void f(double x);
    void f(String s);
}

Kelas yang melaksanakan antara muka ini mesti melaksanakan ketiga-tiga kaedah ini. Sebagai contoh, kod berikut melaksanakan antara muka Contoh:

public class MyExample implements Example {
    @Override
    public void f(int x) {
        System.out.println("f(int): " + x);
    }

    @Override
    public void f(double x) {
        System.out.println("f(double): " + x);
    }

    @Override
    public void f(String s) {
        System.out.println("f(String): " + s);
    }
}

Dengan cara ini, apabila memanggil kaedah f contoh MyExample, pengkompil akan secara automatik memilih kaedah yang sepadan untuk dipanggil berdasarkan jenis dan bilangan parameter yang diluluskan. Contohnya:

Example example = new MyExample();
example.f(123); // 调用MyExample中的f(int)方法
example.f(456.0); // 调用MyExample中的f(double)方法
example.f("Hello"); // 调用MyExample中的f(String)方法

4. Ringkasan

Penduaan nama kaedah ialah masalah biasa di Jawa Terdapat tiga penyelesaian: kelebihan beban kaedah, penulisan ganti kaedah dan pertindihan kaedah. Semasa menulis kod, kita perlu memilih kaedah yang berbeza untuk menyelesaikannya mengikut situasi sebenar. Pada masa yang sama, kita juga perlu memberi perhatian kepada mengikuti konvensyen penamaan kaedah Java Konvensyen penamaan adalah jelas dan ringkas, yang membantu meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Bagaimana untuk menangani nama kaedah pendua di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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