脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|Golang|

服务器之家 - 脚本之家 - Ruby - ruby 继承 概念

ruby 继承 概念

2020-04-08 20:58ruby教程网 Ruby

在日常生活中,我们对一切对象的分类都是有一定层次的.我们知道所有的猫都是哺乳动物,而所有的哺乳动物又都是动物.小型的类从更大的

类中继承它们的属性.如果一切的哺乳动物要呼吸,那么猫也要呼吸.

在Ruby里,我们可以这样表述这一概念:

ruby>classMammal

|defbreathe

|print"inhaleandexhale\n"

|end

|end

nil

ruby>classCat

|defspeak

|print"Meow\n"

|end

|end

nil

虽然我们并未指明一只猫要怎样呼吸,但因为Cat是定义为Mammal的子类的(在OO术语里,较小的类叫子类,相比较大的类称父类),每一只猫都将继承来自于Mammal类的行为.因此从程序员的角度出发,猫天生就拥有呼吸这一能力;当我们加上speak方法后,我们的猫就能呼吸,也可以发声了.

ruby>tama=Cat.new

#

ruby>tama.breathe

inhaleandexhale

nil

ruby>tama.speak

Meow

nil

也会遇到这样的情况:父类的某些属性不可以被某一特定的子类继承.虽然一般鸟类都会飞,但企鹅是鸟类中不会飞的一个子类.

ruby>classBird

|defpreen

|print"Iamcleaningmyfeathers."

|end

|deffly

|print"Iamflying."

|end

|end

nil

ruby>classPenguin

|deffly

|fail"Sorry.I'dratherswim."

|end

|end

nil

抛开脑尽力疲地为每一个新类定义属性,我们只需要新增或重定义子类和父类之间的区别.继承的这一用法有时也叫做特点编程(differentialprogramming).这是面向对象编程的又一好处.

延伸 · 阅读

精彩推荐
  • Ruby二十分钟 教你Ruby快速入门 图文教程

    二十分钟 教你Ruby快速入门 图文教程

    突然发现,ruby也不错,我有点打算想学下了 介绍 这是一个短小的 Ruby 入门,完全读完只需20分钟。这里假设读者已经安装了Ruby,如果你没有安装的话,请...

    Ruby教程网4322019-11-17
  • Rubyrudy 方法 分析

    rudy 方法 分析

    什么叫做一个 方法 呢?在OO编程里,我们不希望直接从外部操纵一个对象的数据;相反的,对象自己了解如何操纵自身(当被恰当地要求时). 你也许会说我们传递...

    脚本之家2582020-04-08
  • Rubyruby 迭代器使用方法

    ruby 迭代器使用方法

    迭代器 并不是Ruby发明的.它广泛地运用于各种面向对象语言.在Lisp中也有,只是不这么叫罢了.尽管如此,迭代器的概念并不为许多人熟悉,因此我们将在此做较...

    脚本之家1462020-04-08
  • Rubyruby 流程控制 方法

    ruby 流程控制 方法

    这章我们将讨论更多的Ruby 流程控制 . case 我们用case语句测试有次序的条件.正如我们所见的,这和C,Java的switch相当接近,但更强大. ruby i=8 rubycasei |when1,2..5 |...

    ruby教程网1972020-04-08
  • Rubyruby 重载方法 详解

    ruby 重载方法 详解

    在子类里,我们可以通过重载父类方法来改变实体的行为. ruby classHuman |defidentify |printImaperson.\n |end |deftrain_toll(age) |ifage12 |printReducedfare.\n; |else |printNormalfare...

    ruby教程网2592020-04-08
  • Rubyruby 简单例子

    ruby 简单例子

    ruby 简单例子...

    ruby教程网2982019-11-23
  • Rubyruby 数组使用教程

    ruby 数组使用教程

    你通过在方括号里列出元素并用逗号将它们相互隔开来创建一个数组. Ruby的数组可以适应不同的对象类型 ...

    ruby教程网3382019-11-23
  • RubyRUBY文档中心-学习开始

    RUBY文档中心-学习开始

    首先,你得检测Ruby是否已经安装了.在shell的提示符处(这里表示为%,所以不要敲入%),敲入 %ruby-v (-v告诉解释器打印出Ruby的版本),然后敲回车.如果安装了Ruby,你...

    RUBY教程网4522019-11-23