转载自:www.66rpg.com
原作者:Dubealex
Near Fantastica(特别讲)
主讲人(翻译):frantice 电子书制作:小湖
第十讲 Inheritance专题
在学习loop之后我们学习inheritance. 什么是inheritance 呢? 用中文讲是 “传承”, 我们可以用一个类来”继承”另一个类的方法和数据(变量).互相”继承”的类分别叫”父类”和”子类”,也就是”超级类”(superclass)和”附属类”(subclass).我们看下例子: 例1: class Inheritance_Sample_1 def initialize @a_local_variable=1 end end
class Inheritance_Sample_2 < Inheritance_Sample_1 def initialize super print @a_local_variable end end 测试一下, 插入脚本后在事件脚本里写: Inheritance_Sample_2.new
看到效果吧^0^. 这是怎么做到的呢? 这就是类的继承.我们在一个类名右边写上< 号,再在右边写上它的超级类(父类)的名字 . 这个例子中"Inheritance_Sample_2" 是附属类 而"Inheritance_Sample_1" 是超级类.通俗地说也就是我们可以从Inheritance_Sample_1这个父类里拿出东西来给Inheritance_Sample_2用. 我们在"Inheritance_Sample_2"这个类里初始化方法下可以找到一个”super”它是做什么的? 它其实就是简单地执行在超级类中定义过的,并且有名字相同的方法.我们看下程序是如何运行的: [接收 .new 命令] -执行Inheritance_Sample_2中的初始化方法 -发现一个关键词"super" -->检查它的超级类,在Inheritance_Sample_1 中找到了 - 执行在超级类Inheritance_Sample_1 中定义的方法 --> 初始化方法@a_local_variable=1 - 程序在Inheritance_Sample_2 中继续执行这个初始化方法 --> @a_local_variable等于 1 - 在屏幕上显示 @a_local_variable -结束
|