我正在阅读Zed Shaw的Ruby入门书.我遇到了一段我不太了解的代码.
class Person
def initialize(name)
@name = name
@pet = nil
end
attr_accessor :pet
end
class Employee < Person
def initialize(name, salary)
super(name)
@salary = salary
end
attr_accessor :salary, :name
end
Run Code Online (Sandbox Code Playgroud)
我非常粗略地理解超级(名称)部分.我相信这意味着它会延伸到父类?我不确定我理解为什么在现实世界中会这样做.为什么有人会超级(姓名)而不是只写@name = name?
我还在学习.提前致谢!
为什么有人会做超级(名字)而不仅仅是写作
@name = name?
让我们从另一个角度看.为什么有人会复制已经存在于父类中的[可能复杂]功能,而不是简单地将工作委托给父级?
如果复制功能然后需求更改,则需要更改所有副本.这容易出错并且在时间/努力方面不必要地昂贵.
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |