


Mengapakah subkelas menjana mesej ralat apabila memanggil kaedah terlampau beban?
Mengapa subkelas menjana mesej ralat apabila memanggil kaedah terlebih beban?
Dalam pengaturcaraan berorientasikan objek, beban berlebihan ialah teknik mentakrifkan berbilang kaedah dengan nama yang sama dalam kelas yang sama. Apabila memanggil kaedah terlebih beban, pengkompil akan menentukan kaedah khusus untuk dipanggil berdasarkan jenis parameter kaedah, nombor atau susunan. Walau bagaimanapun, apabila subkelas mewarisi kaedah terlebih beban yang ditakrifkan dalam kelas induk, beberapa mesej ralat mungkin muncul. Mari jelaskan ini dengan contoh kod konkrit.
Katakan terdapat kelas induk public void print(int a)
dan public void print(String s)
, subkelas Child
mewarisi kelas induk dan cuba memanggil dua kaedah terlampau beban ini. Mari kita lihat contoh kod berikut: Parent
中定义了一个重载方法 public void print(int a)
和 public void print(String s)
,子类 Child
继承了父类并尝试调用这两个重载方法。我们来看看下面的示例代码:
public class Parent { public void print(int a) { System.out.println("Printing integer: " + a); } public void print(String s) { System.out.println("Printing string: " + s); } } public class Child extends Parent { public static void main(String[] args) { Child child = new Child(); child.print(10); // 调用父类的重载方法 print(int a) child.print("Hello"); // 调用父类的重载方法 print(String s) } }
在上面的代码中,子类 Child
实例化后分别调用了父类 Parent
中的重载方法,这个示例是没有问题的,我们成功地调用了两个重载方法并输出了正确的结果。但是,当子类中重载同名方法时,就有可能会产生错误信息。让我们看下面的示例:
public class Child extends Parent { public void print(double d) { System.out.println("Printing double: " + d); } public static void main(String[] args) { Child child = new Child(); child.print(10); // Error: The method print(int) is ambiguous for the type Child child.print("Hello"); // 调用父类的重载方法 print(String s) child.print(10.5); // 调用子类的重载方法 print(double d) } }
在这个例子中,子类 Child
在继承父类的重载方法的同时,又添加了一个新的重载方法 public void print(double d)
。当我们尝试调用 child.print(10)
时,编译器会出现错误信息:The method print(int) is ambiguous for the type Child,这是因为编译器无法确定应该调用父类的 print(int a)
还是子类的 print(double d)
rrreee
Child
memanggil kaedah terlebih beban dalam kelas induk Ibu bapa
selepas instantiasi masalah dengan contoh ini, kami berjaya memanggil kedua-dua kaedah terlebih beban dan mengeluarkan hasil yang betul. Walau bagaimanapun, apabila kaedah dengan nama yang sama ditindih dalam subkelas, mesej ralat mungkin dijana. Mari lihat contoh berikut: rrreee
Dalam contoh ini, subkelasChild
mewarisi kaedah terlebih beban kelas induk dan menambah kaedah terlampau beban baharu public void print(double d) kod>. Apabila kita cuba memanggil <code>child.print(10)
, pengkompil akan memberikan mesej ralat: Kaedah print(int) adalah samar-samar untuk jenis Child Ini kerana pengkompil tidak dapat menentukan bahawa induk kelas hendaklah dipanggil print(int a)
atau subclass print(double d)
. Untuk menyelesaikan masalah ini, kami boleh menentukan kaedah yang akan dipanggil secara eksplisit, atau mengelak daripada membebankan kaedah sedia ada kelas induk dalam subkelas. Apabila kaedah dalam subkelas bercanggah dengan kaedah dalam kelas induk, pengkompil tidak akan dapat menentukan kaedah yang hendak dipanggil, sekali gus menghasilkan mesej ralat. 🎜🎜Dalam pengaturcaraan berorientasikan objek, adalah sangat penting untuk memahami konsep lebihan beban dan warisan Hanya dengan memahami sepenuhnya ciri-ciri ini kita boleh menulis kod yang lebih mantap dan jelas. 🎜Atas ialah kandungan terperinci Mengapakah subkelas menjana mesej ralat apabila memanggil kaedah terlampau beban?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Artikel ini akan menerangkan secara terperinci pengekodan digital mesej ralat yang dikembalikan oleh PHP dalam operasi Mysql sebelumnya. Editor berpendapat ia agak praktikal, jadi saya berkongsi dengan anda sebagai rujukan . Menggunakan PHP untuk mengembalikan maklumat ralat MySQL Pengekodan Berangka Pengenalan Semasa memproses pertanyaan mysql, anda mungkin menghadapi ralat. Untuk mengendalikan ralat ini dengan berkesan, adalah penting untuk memahami pengekodan berangka mesej ralat. Artikel ini akan membimbing anda menggunakan php untuk mendapatkan pengekodan berangka mesej ralat Mysql. Kaedah mendapatkan pengekodan berangka maklumat ralat 1. mysqli_errno() Fungsi mysqli_errno() mengembalikan nombor ralat terkini sambungan MySQL semasa. Sintaksnya adalah seperti berikut: $erro

Selesaikan masalah "error:expecteddeclarationbefore'}'token" dalam kod C++ Dalam proses menulis kod C++, kita sering menghadapi pelbagai ralat kompilasi. Salah satu ralat biasa ialah "error:expecteddeclarationbefore'}'token". Ralat ini biasanya berlaku apabila terdapat sepasang pendakap ({}) dalam kod kami yang tidak dipadankan dengan betul.

Tajuk: Tukar rentetan kepada nombor kompleks menggunakan fungsi strconv.ParseComplex dan kembalikan mesej ralat Teks artikel: Dalam bahasa Go, kadangkala kita perlu menukar rentetan kepada nombor kompleks untuk melaksanakan operasi nombor kompleks atau operasi lain yang berkaitan . Dalam pustaka standard bahasa Go, pakej strconv menyediakan fungsi yang sangat praktikal - ParseComplex, yang digunakan untuk menukar rentetan kepada jenis kompleks. Fungsi ParseComplex ditakrifkan seperti berikut: funcParseC

Apabila kita menggunakan komputer, kita tidak dapat mengelakkan beberapa masalah. Sebagai contoh, seorang rakan baru-baru ini melaporkan bahawa win7 mengumpul mesej ralat dan dimulakan semula. Malah, penyelesaian untuk win7 mengumpul maklumat ralat dan memulakan semula adalah sangat mudah. Hari ini, editor akan mengajar anda cara menyelesaikan masalah memulakan semula win7 mengumpul mesej ralat. Jom belajar sama-sama! 1. Mulakan semula komputer dan lihat sama ada ia boleh memasuki sistem. Jika tidak, paksa penutupan semasa proses permulaan Selepas mengulanginya beberapa kali, komputer akan membaiki secara automatik dan memasuki mod selamat permulaan lanjutan. 2. Tekan kekunci win + r untuk membuka run, masukkan msconfig, dan klik OK. Klik Perkhidmatan, tandai Sembunyikan semua perkhidmatan Microsoft, dan kemudian klik [Lumpuhkan Semua]. Kemudian mulakan semula komputer. 3. Gunakan pemasangan semula sistem satu klik Xiaoyu untuk membantu kami

Gunakan fungsi time.ParseDuration untuk menghuraikan rentetan ke dalam selang masa dan mengembalikan mesej ralat Dalam bahasa Go, pakej masa menyediakan banyak fungsi dan alatan untuk memproses masa dan tarikh. Satu fungsi yang sangat berguna ialah fungsi ParseDuration, yang menghuraikan rentetan ke dalam selang masa. Nilai pulangan fungsi ParseDuration terdiri daripada dua bahagian: selang masa dan maklumat ralat. Jika format rentetan adalah betul, Durat yang mewakili selang masa akan dikembalikan.

Mengapakah subkelas menjana mesej ralat apabila memanggil kaedah terlampau beban? Dalam pengaturcaraan berorientasikan objek, beban berlebihan ialah teknik mentakrifkan pelbagai kaedah dengan nama yang sama dalam kelas yang sama. Apabila memanggil kaedah terlebih beban, pengkompil akan menentukan kaedah khusus untuk dipanggil berdasarkan jenis parameter kaedah, nombor atau susunan. Walau bagaimanapun, apabila subkelas mewarisi kaedah terlebih beban yang ditakrifkan dalam kelas induk, beberapa mesej ralat mungkin muncul. Mari kita jelaskan ini dengan contoh kod konkrit. Katakan terdapat kelas induk bernama Ibu Bapa

PHP, sebagai bahasa skrip peringkat tinggi, digunakan secara meluas dalam membangunkan aplikasi web dan laman web dinamik. Dalam pembangunan PHP, pengendalian pengecualian dan mesej ralat adalah bahagian yang sangat penting. Artikel ini akan memperkenalkan cara PHP mengendalikan pengecualian dan mesej ralat. 1. Pengetahuan asas pengendalian ralat Dalam PHP, terdapat tiga jenis ralat yang berbeza: ralat maut, amaran dan pemberitahuan. Ralat maut akan menyebabkan skrip berhenti melaksanakan serta-merta, amaran akan memaparkan mesej amaran tetapi skrip akan terus dilaksanakan dan pemberitahuan hanyalah peringatan tulen. PHP menyediakan beberapa fungsi terbina dalam untuk ditangkap

Apabila kita menggunakan komputer, kita tidak dapat mengelakkan beberapa masalah. Sebagai contoh, seorang rakan baru-baru ini melaporkan bahawa win10 mengumpul mesej ralat dan dimulakan semula. Malah, penyelesaian untuk win10 mengumpul maklumat ralat dan memulakan semula adalah sangat mudah. Hari ini, editor akan mengajar anda cara menyelesaikan masalah win10 mengumpul mesej ralat dan memulakan semula. Jom belajar sama-sama! 1. Mulakan semula komputer anda dan lihat sama ada ia boleh memasuki sistem. Jika tidak, tutup paksa dan tutup paksa semasa permulaan. Selepas mengulangi ini beberapa kali, komputer secara automatik akan membaiki dirinya sendiri dan memasuki mod selamat lanjutan. 2. Tekan kekunci win + r untuk membuka operasi, masukkan msconfig, dan klik OK. Klik Perkhidmatan, tandai Sembunyikan semua perkhidmatan Microsoft, dan kemudian klik Lumpuhkan semua. Kemudian mulakan semula komputer anda. 3. Gunakan Xiaoyu untuk klik
