2014-11-24 54 views
1

我對Ruby非常陌生,我一直在尋找我的問題的答案,但還沒有找到答案。 這是我的代碼:Ruby:子類的參數錯誤更改了參數個數

class Animal 
    def initialize(aName, anAge) 
    @name = aName 
    @age = anAge 
    end 
end 

class Cat < Animal 
    def initialize(aName, anAge, aBreed) 
    @breed = aBreed 
    super(aName, anAge, aBreed) 
    end 
end 

當我嘗試創建一個新的貓對象與定義三個參數,它說:引發ArgumentError:錯誤數量的參數(3 2)。 但是,當我用兩個參數做同樣的事情時(3爲2)。

我似乎無法弄清楚...... 感謝您的幫助!

+0

Hi @Maerus,歡迎來到Ruby!儘管這不是必須的,但Ruby中的慣用方法是將'snake_case'而不是'lowerCamelCase'用於變量名稱。它不會讓你的代碼更好,但你會發現與其他Ruby專家的整合和合作更容易。 – 2014-11-24 22:23:59

+0

謝謝:)我真的很感謝這個提示! Wooo! – Maerus 2014-11-24 22:28:44

回答

3

您的超類Animal構造函數只有兩個參數aNameanAge。所以你應該只傳遞Cat的前兩個參數到Animal

class Cat < Animal 
    def initialize(aName, anAge, aBreed) 
    @breed = aBreed 
    super(aName, anAge) 
    end 
end 
+0

Wooo!謝謝!這在我的腦海中燃燒着一個洞,但現在超級更有意義,再次感謝! – Maerus 2014-11-24 22:23:41