轉載自: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
-結束