2.3Ruby语言的抽象(Abstract)类

我们可以定义一个抽象类,在抽象类内部定义一些抽象方法,这些方法留待子类进行实现。抽象的反面是 具体(concrete) ,如果一个继承自抽象类的类实现了祖先类中的所有的抽象方法,它就是具体类。

class AbstractGreeter
  def greet
    puts "#{greeting} #{who}"
  end
end
class WorldGreeter < AbstractGreeter
  def greeting
    "Hello"
  end

  def who
    "World"
  end
end
WorldGreeter.new.greet     #Hello World

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/ruby/rubylang/4648.html

(0)
上一篇 2020年8月3日 01:22
下一篇 2020年8月3日 13:41

相关推荐

  • 1.5Ruby数据类型之字符串类(String)

    字符串的创建 字符串的连接 字符串内插(String Interpolation) #{变量名} 写法,可以把计算后得到的值嵌入到字符串中。 字符串中常见的 \ 转义符

    Ruby语言教程 2020年7月5日
    09690
  • 1.7Ruby语言的变量(Variable)和常量(Constant)

    变量遵循标识符的命名规则,一般以小写英文字母开头并且全部为小写。 1.全局变量(Global Variable) 以$开头。作用域:全局使用。定义在类和模块之外。 2.类变量(Class Variable) 以@@开头。作用域:可被类(或子类)方法、实例方法(或子类实例方法)使用,可以被子类继承,不可以直接被对象调用。…

    Ruby语言教程 2020年7月7日
    01.1K0
  • 1.11Ruby语言的两种闭包(Closure):Proc和Lambda

    形成闭包的两个特征: 块需要调用外围方法的参数或局部变量 外围方法有了返回以后,外围方法的参数或局部变量没有立即被销毁,依然存在于内存中,直至块执行完毕 首先回顾一下:代码块可以使用在其外定义的方法参数和方法局部变量。比如 一旦multiply方法有了返回以后,n方法参数将会被销毁,所以,此时还没有形成闭包。那如何形成…

    Ruby语言教程 2020年7月11日
    06240

发表回复

登录后才能评论