Rumah > Java > javaTutorial > Bolehkah Kelas Abstrak Dimulakan di Jawa?

Bolehkah Kelas Abstrak Dimulakan di Jawa?

DDD
Lepaskan: 2024-12-24 15:57:18
asal
290 orang telah melayarinya

Can Abstract Classes Be Instantiated in Java?

Bolehkah Kami Mengadakan Kelas Abstrak?

Semasa temu bual, anda ditanya sama ada boleh membuat kelas abstrak. Secara tradisinya, anda akan menjawab "tidak." Walau bagaimanapun, penemuduga mengejutkan anda dengan mengatakan ia mungkin.

Untuk menunjukkan perkara 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();
    }
}
Salin selepas log masuk

Walaupun pengubah suai abstrak pada saya, anda boleh mencipta contoh menggunakan subkelas tanpa nama. Anda pada asasnya mencipta subkelas dengan cepat dan memberikan rujukannya kepada rujukan kelas abstrak m.

Menurut Spesifikasi Bahasa Java (JLS):

"Jika ungkapan penciptaan contoh kelas berakhir dalam isi kelas, kemudian
kelas yang di instantiated ialah kelas tanpa nama."

Jadi, dalam kes ini, kelas dijadikan instantiated bukan saya, tetapi subkelas tanpa nama.

Tingkah laku ini boleh disahkan dengan menyusun kod dan menyemak fail kelas yang dijana. Anda akan melihat fail kelas baharu bernama Poly$1.class, yang sepadan dengan subkelas tanpa nama yang dibuat pada masa jalan.

Oleh itu, walaupun anda tidak boleh membuat instantiate kelas abstrak secara langsung, anda boleh mencapai hasil yang sama dengan berkesan dengan mencipta subkelas tanpa nama.

Atas ialah kandungan terperinci Bolehkah Kelas Abstrak Dimulakan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan