本帖最后由 灯笼菜刀王 于 2019-3-9 18:17 编辑 ![]() 比如, 星矢有个儿子,叫星活, class 星活 < 星矢 (实际上不能用汉字作为类名哦, 这里只是示范, 别误导了) 星矢会天马流星拳, 一夜18次...阿呸, 一秒18次 class 星矢 attr_accessor :天马流星拳 def initialize @天马流星拳 = 18 end end 星活用super 继承了老爸的方法, 也会天马流星拳了 (实际上实变量不需要super,一样继承的, 这里为了让你明白就多此一举, 一般来说super是用于继承父类的方法同时还要增加新的函数的时候用) class 星活 < 星矢 def initialize super end end 这个时候, p 星活.天马流星拳 #=> 18 , 他完整的继承了老爸的方法 后来, 星活改进技术, 他的天马流星拳有28拳 class 星活 < 星矢 def initialize self.天马流星拳 = 28 end end 这个时候, p 星活.天马流星拳 #=> 28, 而 p 星矢.天马流星拳 #=> 18 子类可以给父类继承来的实变量重新赋值, 这个赋值只针对引用这个实例的对象, 而不影响其他人 p 星蹦.天马流星拳 #=> 18 p 星乱.天马流星拳 #=> 18 p 星跳.天马流星拳 #=> 18 |
本帖最后由 灯笼菜刀王 于 2019-3-9 16:37 编辑 ![]() 而Window_Base 的initialize, 把从它子类的super里得到的参数, 用来赋值给Window的x, y , width, height, 从而得到实际的坐标和宽高 def initialize(x, y, width, height) super() @windowskin_name = $game_system.windowskin_name self.windowskin = RPG::Cache.windowskin(@windowskin_name) self.x = x self.y = y self.width = width self.height = height self.z = 100 end 2, 你第二步, super(0, 0, 160, 6 * 32 + 32) , 这不是 x, y , width, height 都齐了么? ![]() |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-4-23 01:17
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.