Я знаю PHP & Javascript, но я только начинаю изучать Ruby.
В настоящее время это работает:
class Animal
attr_accessor :name, :mammal
def initialize(name)
@name = name
end
end
class Fish < Animal
def initialize(name)
super(name)
@mammal = false
end
end
class Cow < Animal
def initialize(name)
super(name)
@mammal = true
end
end
animals = [
Fish.new('Moppy'),
Cow.new('Marguerite'),
]
animals.each do |animal|
puts "Is #{animal.name} a mammal ? #{animal.mammal}"
end
См. Переменную @mammal в подклассах?
Они являются переменными 'stati c', которые зависят не от экземпляра, а от самого класса (корова всегда будет млекопитающим, в то время как выигранный е sh) t)
Мне было интересно, объявлял ли я @mammal var в нужном месте. Инстинктивно, я бы предпочел сделать это
class Cow < Animal
@mammal = true
def initialize(name)
super(name)
end
end
, но тогда это не работает ... Может кто-нибудь сказать мне, если как вы должны справиться с этим с Ruby?
Спасибо!