今天來聊聊Scala的存取修飾詞(Access modifiers)
Access modifier即存取修飾詞也就是public
、private
和protected
,這些修飾詞可以限制套件、類別、物件裡的成員存取特定區域的程式。而Scala對存取修飾詞的操作就類似於Java,不過多了一些重要的差別。
Scala對public成員沒有明確的修飾詞
所有成員只要沒有標示為private
或protected
,那它就是public
public
成員可以存去任何地方的code
Scala的private成員類似Java的private成員
一個被標示為private
的成員它只能存取那些定義過它的類別或物件
class Outer:
class Inner:
private def f = "f"
class InnerMost:
// f is OK
(new Inner).f // error
在Scala裡,protected
成員只能從定義該成員的子類別訪問
package h:
class Super:
protected def f = "f"
class Sub extends SUper:
f
class other:
(new Super).f //error