如何在Ruby中将子类变量返回到父类中
发布时间:2020-12-17 01:25:42 所属栏目:百科 来源:网络整理
导读:我想创建一个基类来处理所有方法.在这种情况下,如何使用 ruby实现这一目标? class Dog def initialize @breed = "good breed" end def show_dog puts "#{self.class.first_name} of breed #{@breed}" endendclass Lab Dog attr_reader :first_name def init
我想创建一个基类来处理所有方法.在这种情况下,如何使用
ruby实现这一目标?
class Dog def initialize @breed = "good breed" end def show_dog puts "#{self.class.first_name} of breed #{@breed}" end end class Lab < Dog attr_reader :first_name def initialize @first_name = "good dog" end end lb = Lab.new() lb.show_dog 预期的结果将是“品种良种的好狗” 解决方法
> self.class.first_name不会执行您可能想要执行的操作.您需要直接使用@first_name.
>您需要从子类调用父类的构造函数;它不是自动调用的. 这有效: class Dog def initialize @breed = "good breed" end def show_dog puts "#{@first_name} of breed #{@breed}" ### <- Changed end end class Lab < Dog attr_reader :first_name def initialize super ### <- Added @first_name = "good dog" end end lb = Lab.new() lb.show_dog (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |