Rumah > Java > javaTutorial > Mengapa Saya Tidak Boleh Mengakses Ahli Dilindungi dalam Subkelas Java Daripada Pakej Lain?

Mengapa Saya Tidak Boleh Mengakses Ahli Dilindungi dalam Subkelas Java Daripada Pakej Lain?

Linda Hamilton
Lepaskan: 2024-12-10 04:47:12
asal
849 orang telah melayarinya

Why Can't I Access a Protected Member in a Java Subclass From Another Package?

Memahami Java's protected Modifier

Masalah:

Pertimbangkan dua kelas, A dan C, di mana C memanjangkan A. Katakan A mengisytiharkan pembolehubah contoh sebagai dilindungi int protectedInt = 1. Walaupun jangkaan bahawa ahli yang dilindungi harus boleh diakses dalam subkelas dalam pakej lain, Eclipse menandakan akses kepada protectedInt dalam kelas C sebagai tidak kelihatan.

Jawapan:

Pengubah suai dilindungi Java membenarkan akses kepada ahli dalam pakejnya sendiri dan mengikut subkelas, tetapi hanya apabila akses dibuat melalui contoh subkelas. Ini kerana capaian yang dilindungi diskop kepada jenis subkelas, bukan kepada kelas di mana ahli yang dilindungi diisytiharkan.

Menurut Spesifikasi Bahasa Java (JLS), "Akses hanya dibenarkan dalam badan subkelas S daripada C." Ini bermakna walaupun C memanjangkan A, akses langsung protectedInt daripada contoh A tidak dibenarkan.

Penyelesaian:

Untuk mengakses ahli yang dilindungi dalam subkelas , jenis subkelas mesti digunakan. Sebagai contoh, kod berikut adalah sah:

C c = new C();
System.out.println(c.protectedInt);
Salin selepas log masuk

Dalam kes ini, akses dibuat melalui contoh subkelas (C), jadi ahli yang dilindungi kelihatan.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengakses Ahli Dilindungi dalam Subkelas Java Daripada Pakej Lain?. 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