1 回答

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
你可以這樣做:
speed();
由于非私有的超類(lèi)方法都是由子類(lèi)繼承的,speed也存在于子類(lèi)中。您可以通過(guò)this.speed()或 僅訪(fǎng)問(wèn)它speed()。
很明顯,你必須把這個(gè)方法調(diào)用放在一個(gè)合適的地方。你不能像這樣隨機(jī)地把它放在一個(gè)類(lèi)中:
class Car extends Vehicle {
speed(); // can't do this!
}
您必須將方法調(diào)用放入另一個(gè)方法或構(gòu)造函數(shù)中。這樣編譯器就知道何時(shí)調(diào)用該方法。
為什么方法調(diào)用必須在其他方法或構(gòu)造函數(shù)中?
好吧,問(wèn)問(wèn)自己什么時(shí)候會(huì)調(diào)用上面代碼片段中的方法調(diào)用。請(qǐng)記住,這speed是一個(gè)實(shí)例方法,因此Car需要一個(gè)實(shí)例來(lái)調(diào)用它。那個(gè)實(shí)例在哪里?將方法直接放在類(lèi)中的整個(gè)概念毫無(wú)意義。
那么如果我想在加載類(lèi)時(shí)調(diào)用一個(gè)方法呢?
您可以為此使用靜態(tài)塊:
static {
// do stuff here
}
請(qǐng)注意,您仍然不能speed直接在靜態(tài)塊中調(diào)用,因?yàn)槟枰狢aror的實(shí)例Vehicle。
添加回答
舉報(bào)