java的四個(gè)訪(fǎng)問(wèn)權(quán)限修飾符 java為什么不能用protected修飾類(lèi)?
java為什么不能用protected修飾類(lèi)?外部類(lèi)只能通過(guò)public或default進(jìn)行修改我的理解是這樣的:這些修改權(quán)限是針對(duì)類(lèi)中的那些變量、方法和內(nèi)部類(lèi)的,而外部類(lèi)已經(jīng)在最外層(也就是說(shuō),沒(méi)有
java為什么不能用protected修飾類(lèi)?
外部類(lèi)只能通過(guò)public或default進(jìn)行修改我的理解是這樣的:這些修改權(quán)限是針對(duì)類(lèi)中的那些變量、方法和內(nèi)部類(lèi)的,而外部類(lèi)已經(jīng)在最外層(也就是說(shuō),沒(méi)有諸如哪個(gè)類(lèi)是內(nèi)部的或哪個(gè)類(lèi)的子類(lèi)這樣的范圍)。該類(lèi)作為一個(gè)單獨(dú)的文件加載,不能作為私有或受保護(hù)的文件進(jìn)行修改[解釋如下]。只有類(lèi)中的那些變量方法才能在訪(fǎng)問(wèn)權(quán)限方面進(jìn)行討論。上面的討論更有意義:Public:(在類(lèi)中修改為Public的所有變量、方法和內(nèi)部類(lèi))對(duì)所有類(lèi)都是可見(jiàn)的。Protected:(在類(lèi)中修改為Protected的所有變量、方法和內(nèi)部類(lèi))對(duì)同一包中的類(lèi)和所有子類(lèi)可見(jiàn)。Default(即Default,write nothing):(在類(lèi)中修改為Default的所有變量、方法和內(nèi)部類(lèi))在同一個(gè)包中可見(jiàn)。Private:(在類(lèi)中修改為Private的所有變量、方法和內(nèi)部類(lèi))在同一個(gè)類(lèi)(本身)中可見(jiàn)。即:討論訪(fǎng)問(wèn)權(quán)的含義為類(lèi)的內(nèi)部?jī)?nèi)容。在這種情況下,我們?yōu)槭裁匆苯右?guī)定只有內(nèi)部類(lèi)可以使用訪(fǎng)問(wèn)修飾符來(lái)修改外部類(lèi)或類(lèi)呢?
1. 現(xiàn)有包的概念:public和default可以區(qū)分這個(gè)外部類(lèi),并且可以劃分不同的包(default modified class,public modified class只有在不能引入其他包的情況下才能導(dǎo)入)?1) 公開(kāi)和違約之間有足夠的區(qū)別。Public代表Public,not writed代表default,并且沒(méi)有必要添加一個(gè)受保護(hù)的累贅。2) protected還包含不同包子類(lèi)的訪(fǎng)問(wèn)權(quán)限的概念。外部類(lèi)的最外層是package,因此對(duì)外部類(lèi)使用protected沒(méi)有意義,并且package沒(méi)有繼承關(guān)系。
2. 內(nèi)部類(lèi)的概念:當(dāng)存在內(nèi)部類(lèi)時(shí),訪(fǎng)問(wèn)修飾符就變得有意義。(類(lèi)也成為嵌套的成員。當(dāng)然,您需要訪(fǎng)問(wèn)修飾符。)