如何記住訪問修飾符

面向對象思想

面向對象思想之一就是:封裝細節,公開接口。Java語言採用訪問控制修飾符來控制類、類的方法和屬性的訪問權限,從而向使用者提供接口,可是隱藏實現細節。對象

訪問控制級別

  • public: 用public修飾的類、類屬變量及方法,包內及包外的任何類(包括子類和普通類)都可以訪問;繼承

  • protected: 用protected修飾的類、類屬變量及方法,包內的任何類及包外那些繼承了該類的子類才能訪問,protected重點突出繼承接口

  • default: 若是一個類、類屬變量及方法沒有用任何修飾符,則其訪問權限爲default(默認訪問權限)。默認訪問權限的類、類屬變量及方法,包內的任何類(包括繼承了此類的子類)均可以訪問它,而對於包外的任何類都不能訪問它(包括包外繼承了此類的子類)。default重點突出變量

  • private: 用private修飾的類、類屬變量及方法,只有本類能夠訪問,而包內包外的任何類均不能訪問它。 權限

protected屬於子類限制修飾符,而default屬於包限制修飾符方法

protected

在不一樣包的子類中,new一個父類對象,並用該父類對象去訪問父類中的用protected修飾的類屬變量和方法時不能訪問,而new一個子類對象時,子類對象能夠訪問(說明protected修飾的類能夠被其餘包中的類繼承)。也能夠在子類重寫父類的方法中使用super關鍵字調用。解釋以下:    總結

protected修飾符的修飾的成員變量和方法也稱爲受保護的成員變量和方法, 受保護的成員變量和方法能夠在本類或同一個包中的其它類(包括子類)中經過類的實例進行訪問,也能夠被同一個包中的類或不一樣包中的類繼承,可是不能在不一樣包中的其它類(包括子類)中經過類的實例進行訪問。語言

總結

protected修飾符所修飾的類屬成員變量和方法(這句話中指父類),只能夠被子類訪問,而無論子類是否是和父類位於同一個包中。default修飾符所修飾的類屬成員變量和方法,只可被同一個包中的其餘類訪問,而無論其餘類是否是該類的子類。protected屬於子類限制修飾符,而default屬於包限制修飾符。block

相關文章
相關標籤/搜索