Я изучал концепцию инкапсуляции в ruby.
Ниже приведен пример кода, ноутбук наследуется от машины, я сделал есть защищенный метод (класс машины), но не могу получить доступ через экземпляр ноутбука.
Кроме того, я не могу получить доступ к защищенному методу ноутбука под названием description.
class Machine
attr_accessor :name,:cost generated
protected
def eat
puts "machine don't eat"
end
end
class Laptop < Machine
private
def ram
return "4gb"
end
private
def core
return "i3"
end
protected
def description
puts "The laptop has #{ram} ram and it has #{core} core"
end
end
laptop=Laptop.new
laptop.name="hp_notebook_15_n205tx"
laptop.cost =44000
puts "laptop is a machine, & #{laptop.eat} " #doesn't work
puts "#{laptop.name} costs #{laptop.cost}"
puts "#{laptop.description}" #doesn't work
Ниже приведена ошибка, которую я получил:
`<top (required)>': protected method `eat' called for #<Laptop:0x2ed3b68 @name="hp_notebook_15_n205tx", @cost=44000> (NoMethodError)
from -e:1:in `load'
from -e:1:in `<main>'