在Ruby中,多態性允許對象以它們所屬的類為基礎表現出不同的行為。然而,多態性本身并不提供訪問權限控制。要設置訪問權限,你需要使用Ruby的訪問修飾符(如private
、protected
和public
)來控制方法或屬性的訪問級別。
以下是如何在Ruby中設置訪問權限的示例:
class MyClass
# 公共方法
def public_method
puts "This is a public method."
end
# 受保護方法
protected
def protected_method
puts "This is a protected method."
end
# 私有方法
private
def private_method
puts "This is a private method."
end
end
# 創建一個MyClass實例
my_instance = MyClass.new
# 訪問公共方法
my_instance.public_method # 輸出 "This is a public method."
# 訪問受保護方法(會引發錯誤)
my_instance.protected_method # 拋出 NoMethodError: protected method `protected_method' called on MyClass instance
# 訪問私有方法(會引發錯誤)
my_instance.private_method # 拋出 NoMethodError: private method `private_method' called on MyClass instance
在這個例子中,我們定義了一個名為MyClass
的類,其中包含三個不同訪問權限的方法:public_method
(公共方法)、protected_method
(受保護方法)和private_method
(私有方法)。
public_method
可以被任何對象訪問。protected_method
只能被同一個類的實例訪問,或者該類的子類實例訪問。private_method
只能被同一個類的實例訪問,但不能被子類訪問。請注意,多態性并不涉及訪問權限控制。如果你需要在多態的情況下控制訪問權限,你需要在每個子類中顯式地實現相應的訪問控制邏輯。