在 Ruby 中,繼承是通過創(chuàng)建一個(gè)子類來實(shí)現(xiàn)的,子類繼承父類的屬性和方法。構(gòu)造函數(shù)是一個(gè)特殊的方法,用于初始化對(duì)象的狀態(tài)。在 Ruby 中,構(gòu)造函數(shù)的名稱是 initialize
。
設(shè)計(jì)構(gòu)造函數(shù)時(shí),需要考慮以下幾點(diǎn):
下面是一個(gè)簡(jiǎn)單的示例,展示了如何在 Ruby 中設(shè)計(jì)構(gòu)造函數(shù):
class Person
# 定義構(gòu)造函數(shù),接收 name 和 age 兩個(gè)參數(shù)
def initialize(name, age)
# 參數(shù)檢查:確保 name 和 age 都是字符串和整數(shù)
raise ArgumentError, 'Name must be a string and age must be an integer' unless name.is_a?(String) && age.is_a?(Integer)
# 初始化屬性
@name = name
@age = age
end
# 其他方法
end
# 創(chuàng)建一個(gè) Person 對(duì)象
person = Person.new('John Doe', 30)
# 訪問對(duì)象的屬性
puts person.name # 輸出 "John Doe"
puts person.age # 輸出 30
在這個(gè)示例中,我們定義了一個(gè)名為 Person
的類,并在其中設(shè)計(jì)了構(gòu)造函數(shù) initialize
。構(gòu)造函數(shù)接收兩個(gè)參數(shù):name
和 age
,并對(duì)它們進(jìn)行了檢查,確保它們分別是字符串和整數(shù)。然后,使用這些參數(shù)為對(duì)象的屬性 @name
和 @age
賦值。最后,我們創(chuàng)建了一個(gè) Person
對(duì)象,并訪問了它的屬性。