在子类中调用父方法

objc_bd

我正在学习Ruby的对象模型。我已经写了这个脚本:

#/usr/bin/ruby

module MyModule

  class MyBase
    def class_b_method
      puts "class_b_method called"
    end
  end

  class MyClass < MyBase
    attr_accessor :name

    class_b_method

    def set_name(name)
      @name = "My name is #{name}"
    end

    def display_name
      return @name
    end    
  end   
end

obj = MyModule::MyClass.new
obj.set_name "Martin"
puts obj.display_name

运行上面的代码,我得到这个错误:

module.rb:13: undefined local variable or method `class_b_method' for MyModule::MyClass:Class (NameError)

我试图在类中调用父方法MyClass我做错了什么?

奥雅纳·拉希特(Arup Rakshit)

在类内部MyClass,自我是MyClass。但是您class_b_method在类内部定义了一个实例方法MyBase,即该方法可以由该类的实例MyBase调用,而不能由该类本身调用。因此self.class_b_method会引发合法错误。要使您的代码可行,请编写以下方法:

class MyBase
  def self.class_b_method
      puts "class_b_method called"
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在静态子类中获取调用父类

强制子类在重写时调用父方法

如何在javascript中从子类调用父方法?

如何在Python的子类中调用父类的方法?

父类可以调用子类方法吗?

如何从子类中调用重写的父类方法?

为什么每次在父类-Android中触发操作时,我的子类方法总是被调用?

如何在javascript子类中调用父方法

从JAVA中的子类调用父类方法时引发Nullpointer异常

如何在React的子类组件中调用父方法

当参数在C ++中为父类类型时,如何调用子类的方法?

可以从rails的父类中包含的模块中调用父类的子类的私有方法吗?

在JavaScript中调用继承的父方法时返回正确的子类型

如何重写子类中的方法并调用父类方法而不丢失数据

在父类和子类的构造函数中调用重写的方法

在父类构造函数调用的方法中访问子类字段

我想调用父类方法,该方法在Python中通过子类对象在子类中被覆盖

在子类中访问父方法的正确方法

函数调用父类方法而不是子类?

在子类中调用父类的方法时出现stackoverflow

父类中子类的c ++调用方法

Ruby子类不继承父方法或无法在类主体中调用父方法

调用子类方法而不调用父类

在子类的子类中调用方法

Javascript 子类中的实例方法可以调用它的父类静态方法吗?

在 C++ 中从子类调用重载的父方法

如何在同名的子类方法中调用父类方法?

从 Groovy 中的子类调用父特征方法

使用该子类的变量从子类调用父方法