目錄
當前類:當前對象下,都能夠正常使用,無報錯提示,且能夠正常運行
不同包子類:private和default無法使用,public和protected能使用
java中有四種訪問控制修飾符權限
private:在當前對象中可以使用,修飾變量和方法
default:(默認,什麼都不寫)在同一個包可以使用,修飾變量、方法
protected:對同一個包內的類和所有子類能使用。修飾:變量、方法
public:對所有類可以使用,修飾類、接口(默認)、變量、方法
訪問控制權限如下:
修飾符 | 當前類 | 同一個包 | 同一個包(子孫類) | 不同包(子孫類) | 其他包 |
private | Y | Y | Y | Y | Y |
default | Y | Y | Y | Y | N |
protected | Y | Y | N | N | N |
public | Y | N | N | N | N |
測試
新建
當前類:當前對象下,都能夠正常使用,無報錯提示,且能夠正常運行
package cn.enjoyedu.ch;
public class Person {
private static String testPrivate = "private";
static String testDefault = "default";
protected static String testProtected = "protected";
static public String testPublic = "public";
public static void main(String[] args) {
System.out.println("當前對象下,都能夠正常使用,無報錯提示,且能夠正常運行");
System.out.println(testPrivate);
System.out.println(testDefault);
System.out.println(testProtected);
System.out.println(testPublic);
}
}
結果:當前對象下,都能夠正常使用,無報錯提示,且能夠正常運行
當前對象下,都能夠正常使用,無報錯提示,且能夠正常運行
private
default
protected
public
同一個包下:同一個包下,除了私有,其他能夠正常使用
同一個包下子類:除了私有,其他能夠正常使用
不同包子類:private和default無法使用,public和protected能使用
不同包下:除了public,都不能使用
方法訪問控制權限的繼承
繼承按照:private<default<protected<public,的順序,子類的權限只能大於等於父類
父類public,子類只能public
父類protected,子類可以protected、public
父類default,子類可以是default、protected、public