一、protected關鍵字簡介
protected是Java中的一個訪問修飾符,用於限定類的成員(屬性和方法)的訪問範圍,被protected修飾的成員可以被同一包中的其他類訪問,也可以被子類訪問。
在Java中,訪問權限共分為public、private、protected和默認四種。其中public是最開放的權限,可以被任何類訪問,private是最嚴格的權限,只有本類才能訪問,而protected是介於public和private之間的訪問權限,對於同一包中的其他類和任何子類都是可見的。
二、protected關鍵字的定義
protected關鍵字可以用來修飾成員變量和成員方法,用法如下:
protected int num; protected void method() { //方法體 }
注意,protected關鍵字只能用來修飾非私有(private)的成員變量和成員方法,也就是說,只有public、protected和默認的成員才可以被protected關鍵字修飾。
三、protected關鍵字的作用
1. 同一包中的其他類可以訪問
被protected修飾的成員可以被同一包中的其他類訪問,無需使用該成員所在類的對象進行訪問,這樣可以實現類成員的共享。
package com.example; public class A { protected int num; protected void method() { //方法體 } } package com.example; public class B { public void test() { A a = new A(); a.num = 10; //同一包中的其他類可以訪問protected成員 a.method(); } }
2. 子類可以被訪問
被protected修飾的成員可以被子類訪問,無需使用該成員所在類的對象進行訪問,這樣可以實現子類繼承父類的成員。
public class A { protected int num; protected void method() { //方法體 } } public class B extends A { public void test() { num = 10; //子類可以訪問protected成員 method(); } }
3. 子類可以覆蓋
被protected修飾的成員可以被子類覆蓋,也就是說,子類可以使用相同的名稱來重寫父類的protected成員。
public class A { protected void method() { System.out.println("A"); } } public class B extends A { protected void method() { System.out.println("B"); //子類重寫了父類的protected方法 } }
四、與其他訪問修飾符的比較
與public修飾符相比,protected修飾符的訪問權限更受限制,只能被同一包中的其他類和子類所訪問;但與private修飾符相比,protected修飾符的訪問權限更加開放,可以被同一包中的其他類和任何子類所訪問。
默認的訪問修飾符與protected修飾符的訪問權限相同,都可以被同一包中的其他類訪問,但默認的訪問修飾符不能被子類所訪問。
五、總結
protected關鍵字可以用來限定類的成員的訪問權限,被protected修飾的成員可以被同一包中的其他類和任何子類所訪問。使用protected關鍵字可以實現類成員的共享和子類成員的繼承和重寫。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199926.html