在Ruby中,繼承是通過創(chuàng)建一個(gè)子類來實(shí)現(xiàn)的,子類繼承父類的屬性和方法。這樣可以實(shí)現(xiàn)代碼復(fù)用,提高代碼的可維護(hù)性和可擴(kuò)展性。以下是一個(gè)簡單的示例:
# 父類
class Animal
def initialize(name)
@name = name
end
def speak
puts "The animal makes a sound"
end
end
# 子類
class Dog < Animal
def initialize(name, breed)
super(name) # 調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)代碼復(fù)用
@breed = breed
end
def speak
puts "#{@name} the #{@breed} barks"
end
end
# 子類
class Cat < Animal
def initialize(name, color)
super(name) # 調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)代碼復(fù)用
@color = color
end
def speak
puts "#{@name} the #{@color} cat meows"
end
end
# 創(chuàng)建對象
dog = Dog.new("Buddy", "Golden Retriever")
cat = Cat.new("Whiskers", "Black")
# 調(diào)用方法
dog.speak
cat.speak
在這個(gè)示例中,我們創(chuàng)建了一個(gè)名為Animal
的父類,它有一個(gè)構(gòu)造方法和一個(gè)名為speak
的方法。然后我們創(chuàng)建了兩個(gè)子類Dog
和Cat
,它們分別繼承了Animal
類。在子類的構(gòu)造方法中,我們使用super
關(guān)鍵字調(diào)用了父類的構(gòu)造方法,這樣可以實(shí)現(xiàn)代碼復(fù)用。最后,我們創(chuàng)建了Dog
和Cat
對象,并調(diào)用了它們的speak
方法。
通過這種方式,我們可以實(shí)現(xiàn)代碼復(fù)用,提高代碼的可維護(hù)性和可擴(kuò)展性。當(dāng)需要修改父類的方法時(shí),子類會(huì)自動(dòng)繼承這些更改。