自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ruby繼承應(yīng)用經(jīng)驗分享

開發(fā) 開發(fā)工具
Ruby作為一個完全面向?qū)ο蟮哪_本語言,其中的Ruby繼承也可以被叫做特點編程。在這篇文章中我們將會學(xué)到這方面的相關(guān)知識。

Ruby語言作為一種編程語言,同樣具有繼承的功能。下面我們將會針對Ruby繼承的一些相關(guān)知識對大家做一個詳細(xì)的介紹。希望有所幫助。#t#

在日常生活中,我們對一切對象的分類都是有一定層次的.我們知道所有的貓都是哺乳動物,而所有的哺乳動物又都是動物.小型的類從更大的

類中繼承它們的屬性.如果一切的哺乳動物要呼吸,那么貓也要呼吸.

在Ruby里,我們可以這樣表述Ruby繼承這一概念:

  1. ruby> class Mammal   
  2. | def breathe   
  3. | print "inhale and exhale\n"   
  4. | end   
  5. | end   
  6. nil   
  7. ruby> class Cat<Mammal   
  8. | def speak   
  9. | print "Meow\n"   
  10. | end   
  11. | end   
  12. nil  

 

雖然我們并未指明一只貓要怎樣呼吸,但因為Cat是定義為Mammal的子類的(在OO術(shù)語里,較小的類叫子類,相比較大的類稱父類),每一只貓都將繼承來自于Mammal類的行為.因此從程序員的角度出發(fā),貓?zhí)焐蛽碛泻粑@一能力;當(dāng)我們加上speak方法后,我們的貓就能呼吸,也可以發(fā)聲了.

  1. ruby> tama = Cat.new   
  2. #<Cat:0xbd80e8>   
  3. ruby> tama.breathe   
  4. inhale and exhale   
  5. nil   
  6. ruby> tama.speak   
  7. Meow   
  8. nil   

 

Ruby繼承也會遇到這樣的情況:父類的某些屬性不可以被某一特定的子類繼承.雖然一般鳥類都會飛,但企鵝是鳥類中不會飛的一個子類.

  1. ruby> class Bird   
  2. | def preen   
  3. | print "I am cleaning 
    my feathers."   
  4. | end   
  5. | def fly   
  6. | print "I am flying."   
  7. | end   
  8. | end   
  9. nil   
  10. ruby> class Penguin<Bird   
  11. | def fly   
  12. | fail "Sorry. I'd rather swim."   
  13. | end   
  14. | end   
  15. nil  

 

拋開腦盡力疲地為每一個新類定義屬性,我們只需要新增或重定義子類和父類之間的區(qū)別.Ruby繼承的這一用法有時也叫做特點編程(differential programming).這是面向?qū)ο缶幊痰挠忠缓锰?

責(zé)任編輯:曹凱 來源: jb51.net
相關(guān)推薦

2009-12-18 17:01:37

Ruby基礎(chǔ)代碼

2009-12-16 16:37:59

Ruby on Rai

2009-12-17 09:49:18

Ruby代碼管理

2009-12-18 17:24:12

Ruby配置Mysql

2009-12-16 15:23:33

Ruby on rai

2009-12-15 10:23:23

Ruby應(yīng)用技巧

2009-12-17 18:12:31

Ruby框架應(yīng)用

2009-12-18 10:47:16

Ruby裝飾模式

2010-03-01 13:06:49

WCF繼承

2010-02-04 15:19:38

C++獲取CPU信息

2010-01-12 17:02:54

VB.NET文件上傳

2009-12-16 13:53:51

Ruby多繼承

2023-01-03 10:30:00

Java工具

2010-02-22 11:10:17

WCF獲取客戶端IP

2009-09-28 10:52:00

CCNA考試經(jīng)驗CCNA

2009-12-15 18:15:24

Ruby連接到LDAP

2009-12-15 18:24:02

Ruby連接到orac

2010-01-14 17:33:47

VB.NET重載事件處

2009-09-13 22:35:12

ASP.NET數(shù)據(jù)庫

2011-10-09 15:00:52

應(yīng)用商店曝光度
點贊
收藏

51CTO技術(shù)棧公眾號