#我們用乙個示例來演示下這個機制
class
parent
defsay(message)
puts message
endendclass child def
say(message)
super
endend
child.new.say(
'hi!')
#輸出hi
如果parent中的say是乙個不帶引數的方法,那結果會怎麼樣 ?
classparent
defsay puts message
endendclass child def
say(message)
super
endend
child.new.say(
'hi!')
#執行上面的**會發現丟擲了 argumenterror (wrong number of arguments (given 1, expected 0)) 異常。
為了避免這個問題,也為了解決這個問題,我們可以明確的指出 super 不需要把子類中相關的引數傳遞給父類
為此,我們需要在 super 後新增一對小括號 () ,即 super() 明確的呼叫父類而不傳遞任何引數
1class
parent
2def
say3 puts "
i'm the parent"4
end5
end6
7class child 8def
say(message)
9super()
10end
11end
12 child.new.say('
hi!')13
#輸出i'm the parent
Ruby 的 super 怎麼用
ruby 的 super 僅用於繼承中,用來給子方法呼叫父方法。class parent def method a,b puts endendclass childa parent def method a,b super b,a endendclass childb parent def meth...
java中this和super的區別
一 this 1 屬性訪問 訪問本類中的屬性,如果本類中沒有此屬性,則從父類中繼續查詢 2 方法 訪問本類中的方法,如果本類中沒有此方法,則從父類中繼續查詢 3 呼叫構造 呼叫本類構造,必須放在構造方法的首行 4 表示當前物件 二 super 1 屬性訪問 訪問父類中的屬性 2 方法 直接訪問父類中...
Java中this和super的區別
this通常指當前物件,super則指父類的。當你想要引用當前物件的某種東西,比如當前物件的某個方法,或當前物件的某個成員,你便可以利用this來實現這個目的,當然,this的另乙個用途是呼叫當前物件的另乙個建構函式。如果你想引用父類的某種東西,則非super莫屬。在一般方法中最普遍的情況就是,在你...