Apakah kata kunci super di Java?
Kata kunci super digunakan di Java untuk merujuk kepada kelas induk objek semasa. Penggunaan utamanya termasuk mengakses kaedah kelas induk, memanggil pembina kelas induk, dan menyelesaikan konflik nama lapangan. 1. Akses kaedah kelas induk: Apabila kelas kanak -kanak mengatasi kaedah kelas induk, versi kelas induk boleh dipanggil melalui super.method () untuk memperluaskan tingkah lakunya dan bukannya menggantikannya sepenuhnya; 2. Panggil pembina kelas induk: super () atau super (args) digunakan dalam pembina kelas kanak -kanak untuk memulakan bidang kelas induk, dan pernyataan itu mesti terletak pada baris pertama pembina kelas kanak -kanak; 3. Selesaikan konflik nama lapangan: Jika kelas kanak -kanak mentakrifkan medan nama yang sama seperti kelas induk, Super.FieldName boleh digunakan untuk mengakses medan kelas induk secara jelas.
Kata kunci super
di Java digunakan untuk merujuk kepada kelas induk (atau superclass) objek semasa. Ia sangat berguna apabila anda bekerja dengan warisan, terutamanya jika anda ingin mengakses kaedah atau pembina dari kelas induk yang mungkin tersembunyi atau ditindih dalam subkelas.

Mari kita memecahkannya ke dalam kes penggunaan biasa supaya anda dapat melihat bagaimana dan mengapa anda menggunakan super
.
Mengakses kaedah kelas induk
Apabila subclass mengatasi kaedah dari kelas induknya, versi dalam kelas kanak -kanak mendapat keutamaan. Tetapi kadang -kadang anda masih mahu menjalankan versi ibu bapa - mungkin untuk memperluaskan tingkah lakunya dan bukannya menggantikannya sepenuhnya.

Contohnya:
haiwan kelas { tidak sah bercakap () { System.out.println ("Haiwan Bercakap"); } } anjing kelas memanjangkan haiwan { @Override tidak sah bercakap () { super.speak (); // memanggil versi haiwan terlebih dahulu System.out.println ("Barks Dog"); } }
Dalam kes ini:

-
super.speak()
menjalankan kaedah asal dariAnimal
- Kemudian kami menambah tingkah laku tambahan khusus untuk
Dog
Corak ini benar -benar berguna apabila anda ingin membina logik sedia ada tanpa kod pendua.
Memanggil pembina kelas induk
Jika subclass anda mempunyai pembina, anda sering perlu memulakan bidang yang dimiliki oleh kelas induk. Anda boleh melakukannya dengan memanggil pembina ibu bapa menggunakan super()
sebagai baris pertama dalam pembina subkelas anda.
Inilah yang kelihatan seperti:
kenderaan kelas { Kenderaan (jenama rentetan) { System.out.println ("Jenama Kenderaan:" Jenama); } } Kereta kelas memanjangkan kenderaan { Kereta (jenama rentetan) { Super (jenama); // mesti datang terlebih dahulu System.out.println ("kereta yang dibuat"); } }
Beberapa perkara yang perlu diperhatikan:
-
super()
mestilah pernyataan pertama dalam pembina - Sekiranya anda tidak memanggil
super()
secara eksplisit, Java menambahsuper()
untuk anda secara automatik - Sekiranya ibu bapa tidak mempunyai pembina tidak ada, anda mesti memberikan hujah yang betul
Menyelesaikan konflik nama lapangan
Kadang -kadang subclass mentakrifkan medan dengan nama yang sama seperti satu dalam kelas induk. Dalam hal ini, anda boleh menggunakan super.fieldName
untuk mengakses versi ibu bapa.
Contoh:
ibu bapa kelas { int nilai = 10; } Anak kelas memanjangkan ibu bapa { int nilai = 20; void printValues () { System.out.println ("Nilai Anak:" Nilai); System.out.println ("Nilai induk:" super.value); } }
Ini membantu mengelakkan kekeliruan apabila kedua -dua kelas menentukan bidang yang sama dan anda perlu membezakan antara mereka.
Jadi ya, super
bukan sihir - ia hanya satu cara untuk dengan jelas mengatakan "Saya mahu menggunakan sesuatu dari kelas induk saya." Sama ada kaedah, pembina, atau medan, super
memberi anda kawalan ke atas versi yang anda maksudkan.
Dan dengan jujur, apabila anda terbiasa dengannya, ia membuat kerja dengan warisan yang lebih bersih dan lebih fleksibel.
Itu pada dasarnya. Tidak terlalu rumit, tetapi pasti penting apabila anda mula membina hierarki kelas yang lebih kompleks.
Atas ialah kandungan terperinci Apakah kata kunci super di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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)

Benang maya mempunyai kelebihan prestasi yang signifikan dalam senario yang sangat konkurensi dan intensif, tetapi perhatian harus dibayar kepada kaedah ujian dan senario yang berkenaan. 1. Ujian yang betul harus mensimulasikan perniagaan sebenar, terutamanya senario menyekat IO, dan menggunakan alat seperti JMH atau Gatling untuk membandingkan benang platform; 2. Jurang throughput adalah jelas, dan boleh beberapa kali hingga sepuluh kali lebih tinggi daripada 100,000 permintaan serentak, kerana ia lebih ringan dan cekap dalam penjadualan; 3. Semasa ujian, adalah perlu untuk mengelakkan membabi buta mengejar nombor konvensional yang tinggi, menyesuaikan diri dengan model IO yang tidak menyekat, dan memberi perhatian kepada petunjuk pemantauan seperti latensi dan GC; 4.

ServiceMesh adalah pilihan yang tidak dapat dielakkan untuk evolusi seni bina microservice Java, dan terasnya terletak pada decoupling logik rangkaian dan kod perniagaan. 1. ServiceMesh mengendalikan pengimbangan beban, fius, pemantauan dan fungsi lain melalui agen sidecar untuk memberi tumpuan kepada perniagaan; 2. INTOR ISTIO sesuai untuk projek sederhana dan besar, dan Linkerd lebih ringan dan sesuai untuk ujian berskala kecil; 3. Java microservices harus menutup, reben dan komponen lain dan menyerahkannya kepada Istiod untuk penemuan dan komunikasi; 4. Memastikan suntikan automatik sidecar semasa penempatan, perhatikan konfigurasi peraturan lalu lintas, keserasian protokol, dan pembinaan sistem penjejakan log, dan mengamalkan penghijrahan tambahan dan perancangan pemantauan pra-kawalan.

Untuk mengendalikan transaksi JDBC dengan betul, anda mesti terlebih dahulu mematikan mod komit automatik, kemudian melakukan pelbagai operasi, dan akhirnya melakukan atau mengembalikan semula hasilnya; 1. Panggil Conn.SetAutOcommit (palsu) untuk memulakan transaksi; 2. Melaksanakan pelbagai operasi SQL, seperti memasukkan dan mengemaskini; 3. Panggil Conn.Commit () jika semua operasi berjaya, dan hubungi conn.rollback () jika pengecualian berlaku untuk memastikan konsistensi data; Pada masa yang sama, cuba-dengan-sumber harus digunakan untuk menguruskan sumber, mengendalikan pengecualian dengan betul dan menutup sambungan untuk mengelakkan kebocoran sambungan; Di samping itu, adalah disyorkan untuk menggunakan kolam sambungan dan menetapkan mata simpan untuk mencapai rollback separa, dan menyimpan urus niaga sesingkat mungkin untuk meningkatkan prestasi.

DependencyInjection (DI) isadesignpatternwhereBjectsReceivedependencys ke luar, promotingloosecouplingandeasieSierTestthroughconstructor, setter, orfieldInjection.2.springframeworkusesannotationsike@component,@service, dan@autowwithjava yang berasaskan@autowwithjava

Pra-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusoftenperforminglightbetterine serverless scenarios.tyvelopecosyste,

SetupaMaven/gradleprojectwithjax-rsdependencyiSejersey; 2.createarescresourceUsingAnnotationssuchas@pathand@get; 3.configuretheapplicationviaapplicationsubclassorweb.xml;

Gunakan kelas dalam pakej Java.Time untuk menggantikan kelas lama dan kelas kalendar; 2. Dapatkan tarikh dan masa semasa melalui LocalDate, LocalDateTime dan Tempatan Tempatan; 3. Buat tarikh dan masa tertentu menggunakan kaedah (); 4. Gunakan kaedah tambah/tolak untuk meningkatkan dan mengurangkan masa; 5. Gunakan zoneddatetime dan zonid untuk memproses zon waktu; 6. Format dan parse date string melalui DateTimeFormatter; 7. Gunakan segera untuk bersesuaian dengan jenis tarikh lama apabila perlu; pemprosesan tarikh di java moden harus memberi keutamaan untuk menggunakan java.timeapi, yang memberikan jelas, tidak berubah dan linear

Gunakan alat analisis prestasi untuk mencari kesesakan, gunakan VisualVM atau JProfiler dalam peringkat pembangunan dan ujian, dan memberi keutamaan kepada async-profiler dalam persekitaran pengeluaran; 2. Mengurangkan penciptaan objek, menggunakan semula objek, gunakan StringBuilder untuk menggantikan splicing rentetan, dan pilih strategi GC yang sesuai; 3. Mengoptimumkan penggunaan koleksi, pilih dan preset kapasiti awal mengikut tempat kejadian; 4. Mengoptimumkan keserasian, gunakan koleksi serentak, mengurangkan granulariti kunci, dan tetapkan kolam benang dengan munasabah; 5. Tune Parameter JVM, tetapkan saiz timbunan yang munasabah dan pemungut sampah rendah dan membolehkan log GC; 6. Elakkan refleksi di peringkat kod, ganti kelas pembalut dengan jenis asas, penangguhan permulaan, dan gunakan akhir dan statik; 7. Ujian dan Pemantauan Prestasi Berterusan, digabungkan dengan JMH
