Rumah > Java > javaTutorial > Bolehkah Kami Menghasilkan Kelas Abstrak di Jawa?

Bolehkah Kami Menghasilkan Kelas Abstrak di Jawa?

Patricia Arquette
Lepaskan: 2024-12-07 10:57:16
asal
767 orang telah melayarinya

Can We Instantiate an Abstract Class in Java?

Bolehkah Kita Menghasilkan Kelas Abstrak: Menyelam Lebih Dalam

Dalam pemahaman konvensional, kelas abstrak tidak boleh dibuat seketika. Tetapi teka-teki temu bual baru-baru ini membawa perspektif yang berbeza. Mari kita mendalami soalan yang menarik ini dengan contoh praktikal:

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

Bertentangan dengan tanggapan tradisional, adalah mungkin untuk mewujudkan kelas abstrak dalam senario ini. Walau bagaimanapun, terdapat perbezaan yang ketara: daripada menjadikan kelas abstrak itu sendiri, kami mencipta subkelas tanpa nama daripadanya.

Memahami Subkelas Tanpa Nama

Subkelas tanpa nama ialah kelas dalaman yang tidak dinamakan yang memanjangkan atau melaksanakan superclass atau antara muka tertentu. Dalam kod di atas:

  • My() baharu mencipta contoh subkelas tanpa nama yang memanjangkan My.
  • Isi kelas {} membolehkan kami mentakrifkan kaedah dan medan khusus untuk ini instance.
  • m ialah rujukan kepada contoh subkelas tanpa nama, mengaksesnya yang diganti mymethod().

Pengesahan Melalui Kompilasi

Untuk mengesahkan kelakuan ini, pertimbangkan untuk menyusun kod. Dalam output yang disusun, kita akan melihat:

  • My.class: Bytecode untuk kelas abstrak.
  • Poly.class: Bytecode untuk lampiran class.
  • Poly$1.class: Bytecode untuk subclass tanpa nama.

Kehadiran Poly$1.class mengesahkan instantiasi subclass tanpa nama, bukan kelas abstrak itu sendiri.

Spesifikasi Bahasa Jawa Sokongan

Spesifikasi Bahasa Java (JLS) secara eksplisit menyebut subkelas tanpa nama dalam Bahagian 15.9.1: "Kelas yang digunakan ialah subkelas tanpa nama."

Kesimpulan

Walaupun kelas abstrak tidak boleh dibuat secara langsung, ia boleh dilanjutkan dengan subkelas tanpa nama, membolehkan penciptaan contoh dengan kaedah dan medan tersuai. Nuansa ini ialah alat yang berharga untuk memahami dan menggunakan konsep berorientasikan objek Java.

Atas ialah kandungan terperinci Bolehkah Kami Menghasilkan Kelas Abstrak 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan