Rumah >Java >javaTutorial >Bolehkah Kami Membuat Kelas Abstrak? Jawapan yang disemak
Bolehkah Kita Benar-benar Menghasilkan Kelas Abstrak?
Semasa temu bual, soalan biasa timbul: "Bolehkah kita membuat instantiate kelas abstrak?" Jawapan tradisional ialah "Tidak", tetapi respons ini kini mungkin sudah lapuk.
Enigma Kelas Tanpa Nama
Untuk menjelaskan teka-teki ini, mari kita selidiki pemahaman semakan yang diperkenalkan oleh Java Language Specification (JLS) Bahagian 15.9.1 dan 12.5. Secara khusus, apabila ungkapan penciptaan contoh kelas berakhir dalam badan kelas, subkelas tanpa nama diisytiharkan. Oleh itu, kelas yang dijadikan instantiated menjadi subkelas tanpa nama, bukan kelas abstrak itu sendiri.
Demonstrasi Praktikal
Untuk menggambarkan konsep ini, pertimbangkan kod berikut:
abstract class My { public void myMethod() { System.out.print("Abstract"); } } class Poly { public static void main(String[] a) { My m = new My() {}; m.myMethod(); } }
Apabila menyusun kod ini, anda akan melihat penciptaan fail My$1.class, sepadan dengan subkelas tanpa nama dijana untuk instantiasi kelas tanpa nama yang dilakukan melalui My() {}.
Kesimpulan
Oleh itu, jawapan kepada soalan "Bolehkah kita membuat instantiate kelas abstrak ?" telah berkembang. Walaupun kami tidak boleh membuat instantiate kelas abstrak secara langsung, kami boleh mencipta kejadian subkelas awanama mereka, yang berkelakuan sebagai tika kelas abstrak, membolehkan kami menggunakan kaedah dan mengakses sifat dalam kelas abstrak.
Atas ialah kandungan terperinci Bolehkah Kami Membuat Kelas Abstrak? Jawapan yang disemak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!