重构现有类以使用继承
假设我们有两个类,Cat 和 Dog。
class Cat
def eat
die unless has_food?
self.food_amount -= 1
self.hungry = false
end
def sound
puts "Meow"
end
end
class Dog
def eat
die unless has_food?
self.food_amount -= 1
self.hungry = false
end
def sound
puts "Woof"
end
end
eat 方法在这两个类中完全相同。虽然这有效,但很难维护。如果有更多的动物使用相同的 eat 方法,问题会变得更糟。继承可以解决这个问题。
class Animal
def eat
die unless has_food?
self.food_amount -= 1
self.hungry = false
end
# No sound method
end
class Cat < Animal
def sound
puts "Meow"
end
end
class Dog < Animal
def sound
puts "Woof"
end
end
我们创建了一个新类 Animal,并将我们的 eat 方法移动到该类。然后,我们让 Cat 和 Dog 继承了这个新的常见超类。这消除了重复代码的需要