java - Adakah kelebihan beban polimorfik? ?
给我你的怀抱
给我你的怀抱 2017-06-12 09:20:06
0
3
1058

Masalah ni memang sakit kepala, tak kira macam mana pun awak cakap

Pandangan 1: Tiga unsur polimorfisme, 1, 2, 3
Jadi beban berlebihan bukanlah polimorfisme

Pandangan 2:

Disebut dalam buku Java Virtual Machine

Beberapa manifestasi paling asas bagi ciri polimorfisme, seperti "lebih muatan" dan "penulisan semula" Bahagian 8.1
Ini bermakna pembebanan dan penulisan semula adalah kedua-dua manifestasi polimorfisme

Bagaimana anda faham

给我你的怀抱
给我你的怀抱

membalas semua(3)
仅有的幸福

Setiap buku diterjemahkan secara berbeza, sebaiknya nyatakan istilah Inggeris, sama ada Override atau Overload.

Override ialah manifestasi polimorfisme (cth. @Override public String toString() {...}), tetapi @Override public String toString() {...}),但Overload不是(例如PrintStream.println()PrintStream.println(String s)Override

bukanlah (cth. PrintStream.println() kod > dan PrintStream.println(String s)). 🎜
给我你的怀抱

Malah, terdapat tiga persamaan bahasa Inggeris bagi "overload" bahasa Cina: override, overload dan overwrite Kemudian, yang terakhir diterjemahkan secara beransur-ansur kepada "rewrite" atau "rewrite".

Override merujuk kepada amalan mentakrifkan semula fungsi kelas induk dengan tandatangan yang sama Dalam kes ini, fungsi kelas induk dan fungsi kelas anak adalah entiti bebas. Tetapi apabila memanggil, pengkompil (atau jurubahasa) boleh menentukan pelaksanaan yang hendak dipanggil berdasarkan jenis objek sebenar.

lebihan merujuk kepada berbilang pelaksanaan nama fungsi yang sama yang tidak boleh ditandatangani. Dalam kes ini, nama fungsi yang sama selalunya boleh dipanggil dengan jenis parameter yang berbeza untuk menghasilkan hasil yang berbeza Contoh biasa ialah max(int, int)max(double, double) dsb.

Tulis ganti biasanya ialah penulisan semula fungsi dengan tandatangan kelas induk yang sama oleh subkelas Tanda tangan kedua-dua fungsi adalah sama, tetapi ia tiada kaitan antara satu sama lain. Dalam kes ini, jenis kelas induk merujuk kepada objek subkelas dan kaedah panggilan ialah kaedah kelas induk yang dipanggil (perhatikan perbezaan dengan timpa)

Mengenai perbezaan antara tulis ganti dan ganti, seperti yang ditunjukkan di bawah

Sekarang mari kita bercakap tentang polimorfisme. Mari kita lihat dulu definisi polimorfisme:

  • Polymorphism merujuk kepada entiti yang sama yang mempunyai pelbagai bentuk pada masa yang sama. (Muzik Bing)

  • Polymorphism secara literal bermaksud "berbilang keadaan". Dalam bahasa berorientasikan objek, pelbagai pelaksanaan berbeza antara muka dipanggil polimorfisme. (Ensiklopedia Baidu)

Dari definisi, "lebih muatan" tidak ada kaitan dengan polimorfisme, tetapi lebihan muatan ialah satu bentuk polimorfisme yang lain termasuk antara muka, abstraksi, fungsi maya, templat, generik..., dan kemudian dari Baidu Beberapa petikan daripada ensiklopedia.

  • Ringkasnya, ia adalah satu ayat: Ia dibenarkan untuk menetapkan penunjuk jenis subkelas kepada penunjuk jenis kelas induk. Polimorfisme dilaksanakan melalui fungsi maya dalam kedua-dua Objek Pascal dan C++.

  • Polymorphism: Operasi yang sama bertindak pada objek yang berbeza dan boleh mempunyai tafsiran yang berbeza dan menghasilkan hasil pelaksanaan yang berbeza. Pada masa jalan, anda boleh memanggil kaedah dalam kelas terbitan melalui penuding ke kelas asas.

  • Dalam C++, terdapat kaedah berikut untuk mencapai polimorfisme: fungsi maya, kelas abstrak, penggantian dan templat (lebih muatan tiada kaitan dengan polimorfisme).

  • Polymorphism membenarkan kaedah mempunyai nama yang sama atau nilai pulangan boleh dihantar atau dikembalikan daripada jenis induk.

学霸

Mungkin terdapat ralat terjemahan Polimorfisme bermakna objek menunjukkan ciri yang berbeza dalam konteks yang berbeza Contohnya, anak subkelas mewarisi induk kelas induk, dan kaedah baharu ditambahkan pada kelas Anak, simpan . Juga gunakan terus Child child1=new Child(), objek child1 boleh memanggil kaedah simpan dan log masuk, gunakan Parent child2 = new Child(), objek child2 hanya boleh menggunakan kaedah log masuk. Jadi ia bergantung kepada konteks.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan