宣告為protected許可權的成員變數和成員方法,可以被同一包中的所有類和不同包中的子類訪問。
但是,在實際使用中,不同包中的子類要訪問父類中protected許可權的成員,卻不是那麼隨意的呼叫。看幾個例子:
首先在ch13test包中定義父類animal,包含乙個protected許可權的成員變數 i 和成員方法eat():
package ch13test;
public
class
animal
}
子類cat定義在ch13包中,在子類中直接使用animal的protected成員變數和方法,可行
package ch13;
import ch13test.animal;
public
class
catextends
animal
}
子類cat定義在ch13包中,在子類中通過子類的物件訪問animal的protected成員變數和方法,可行
package ch13;
import ch13test.animal;
public
class
catextends
animal
}
子類cat定義在ch13包中,在子類中通過父類的物件訪問父類animal的protected成員變數和方法,不行
package ch13;
import ch13test.animal;
public
class
catextends
animal
}
子類cat和dog都定義在ch13包中,在dog子類中通過其他子類(cat)的物件訪問父類animal的protected成員變數和方法,不行
package ch13;
import ch13test.animal;
public
class
dogextends
animal
}
子類cat定義在ch13包中,同包中其他類中通過子類的物件訪問父類animal的protected成員變數和方法,不行
package ch13;
public
class
test
}
總結:
子類可以通過繼承獲得不同包父類的protected許可權成員變數和成員方法,在子類中可以直接訪問
在子類中可以通過子類的物件訪問父類的protected成員變數和方法
在子類中反而不能通過父類的物件訪問父類的protected成員變數和方法
在子類中不能通過其他子類的物件訪問父類的protected成員變數和方法
在與子類同包的其他類中不能通過子類的物件訪問父類的protected成員變數和方法
JAVA中protected的作用
1 public public表明該資料成員 成員函式是對所有使用者開放的,所有使用者都可以直接進行呼叫 2 private private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。3 protected prot...
訪問許可權以及子類的繼承性
一.1.私有變數和私有方法 在另外乙個類中,物件不能訪問自己的成員變數和方法。如果是私有類變數或者私有類方法,也不能通過類名訪問該變數或者方法。2.公有變數和公有辦法 在類外乙個類中,物件可以訪問自己的成員變數或者方法。也可以通過類名訪問。3.友好變數和友好方法 乙個類中的友好變數和友好方法,在另乙...
mysql加訪問許可權 mysql 新增使用者訪問許可權
grant 許可權 on 資料庫物件 to 使用者 passwordmysql grant all on to root identified by abc123 query ok,0 rows affected 0.01 sec mysql select host,user,password fr...