rudy是什么意思:rudy 继承 概念

在日常生活中,我们对切对象分类都是有定层次.我们知道所有猫都是哺乳动物,而所有哺乳动物又都是动物.小型类从更大
类中继承它们属性.如果哺乳动物要呼吸,那么猫也要呼吸.
在Ruby里,我们可以这样表述这概念:
ruby> Mammal
| def breathe
| pr "inhale and exhale\n"
| end
| end
nil
ruby> Cat<Mammal
| def speak
| pr "Meow\n"
| end
| end
nil

虽然我们并未指明只猫要怎样呼吸,但Cat是定义为Mammal子类(在OO术语里,较小类叫子类,相比较大类称父类),每只猫都将继承来自于Mammal类行为.因此从角度出发,猫天生就拥有呼吸这能力;当我们加上speak思路方法后,我们猫就能呼吸,也可以发声了.
ruby> tama = Cat.
#<Cat:0xbd80e8>
ruby> tama.breathe
inhale and exhale
nil
ruby> tama.speak
Meow
nil

也会遇到这样情况:父类某些属性不可以被某特定子类继承.虽然般鸟类都会飞,但企鹅是鸟类中不会飞个子类.
ruby> Bird
| def preen
| pr "I am cleaning my feathers."
| end
| def fly
| pr "I am flying."
| end
| end
nil
ruby> Penguin<Bird
| def fly
| fail "Sorry. I'd rather swim."
| end
| end
nil

抛开脑尽力疲地为每个新类定义属性,我们只需要新增或重定义子类和父类的间区别.继承使用方法有时也叫做特点编程(dferential programming).这是面向对象编程好处.
Tags:  rudyyoungblood valentinorudy rudy什么意思 rudy是什么意思

延伸阅读

最新评论

发表评论