第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于多層繼承的問(wèn)題,有代碼。(多層繼承是我自己想出來(lái)的詞,不知道恰不恰當(dāng)~)

//先看代碼
//創(chuàng)建一個(gè)父類(lèi)
public?class?Plant{
?String?color;
?String?kind;
?private?int?age;
?public?void?eat(){
???System.out.println("有的植物可以被食用,比如香蕉。");
?}
}
//創(chuàng)建子類(lèi)
public?class?Banana?extends?Plant{

}
//創(chuàng)建運(yùn)行類(lèi)
public?class?Run{
public?static?void?main(String[]?args){
?Banana?banana=new?Banana();
??banana.color="yellow";
??banana.kind="fruit";
??banana.eat();
??System.out.println("香蕉的顏色是"+banana.color);
??System.out.println("香蕉的種類(lèi)是"+banana.kind);
}
}
//運(yùn)行結(jié)果:
//有的植物可以被食用。
//香蕉的顏色是yellow
//香蕉的種類(lèi)是fruit
//再創(chuàng)建一個(gè)Banana的子類(lèi)
public?Hello?extends?Banana{

}
//再創(chuàng)建一個(gè)運(yùn)行類(lèi)
public?class?Run2{
public?static?void?main(String[]?args){
?Hello?hello=new?Hello();
?hello.eat();
?System.out.println(hello.color);
?System.out.println(hello.kind);
}
}
//運(yùn)行結(jié)果:
//有的植物可以被食用。
//null
//null

為什么Hello類(lèi)作為Banana的子類(lèi)卻不能繼承Banana的屬性和方法(顯然eat方法是繼承Plant);
課程里說(shuō)Java只能單繼承,我創(chuàng)建的Hello類(lèi)是Banana的子類(lèi),卻繼承了Plant類(lèi)的屬性和方法,這是不是有兩個(gè)父類(lèi)呢?
望高手解答,謝謝!


正在回答

2 回答

public?class?Run2{
public?static?void?main(String[]?args){
?Hello?hello=new?Hello();??
?hello.eat();
?//你并沒(méi)有調(diào)用父類(lèi)方法的color和kind啊,而且也沒(méi)有給這個(gè)屬性賦初始值,就默認(rèn)為null了。
?//你只是在run中的main方法中給Banana賦值了,對(duì)Hello并沒(méi)有影響。
?//你在這里輸入hello.color="test";?hello.kind="test"就好了,或者給Plant的兩個(gè)屬性賦一個(gè)初始值。
?System.out.println(hello.color);
?System.out.println(hello.kind);
}
}


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

_Jack_Han_ 提問(wèn)者

非常感謝!
2016-01-07 回復(fù) 有任何疑惑可以回復(fù)我~
#2

_Jack_Han_ 提問(wèn)者

Hello作為Banana的子類(lèi),調(diào)用Banana的屬性也需要在前面加上類(lèi)名嗎?子類(lèi)不是可以直接繼承父類(lèi)屬性的值嗎?
2016-01-07 回復(fù) 有任何疑惑可以回復(fù)我~
#3

_Jack_Han_ 提問(wèn)者

我明白了,屬性的初始值我是在Run類(lèi)里定義的,雖然是通過(guò)Banana的對(duì)象,但是Banana的類(lèi)里是空的,所以Hello什么都沒(méi)繼承到。謝謝你。但是為什么Hello可以繼承Plant的eat()方法呢?Hello是Banana的子類(lèi)。
2016-01-07 回復(fù) 有任何疑惑可以回復(fù)我~
#4

Its_forever 回復(fù) _Jack_Han_ 提問(wèn)者

是的。如果Banana里面有一個(gè)where(產(chǎn)地)的屬性。 public class Banana extends Plant{ String where ="China"; } 那么在main方法中: Hello hello=new Hello(); hello.where ="American"; System.out.println(hello.where); //輸出American 如果沒(méi)有 hello.where ="American";這句,輸出China。這樣就是子類(lèi)直接繼承了父類(lèi)屬性的值。
2016-01-07 回復(fù) 有任何疑惑可以回復(fù)我~
#5

Its_forever 回復(fù) _Jack_Han_ 提問(wèn)者

Hello可以繼承Plant的eat()方法是因?yàn)镠ello雖然是Banana的直接子類(lèi)。但是Banana繼承了Plant。所以Hello也就間接的繼承了Plant。 相當(dāng)于,Banana繼承了Plant,Banana就擁有了Plant除了private的所有屬性和方法。 Hello繼承了Banana也就擁有了Banana除了private的所有屬性和方法(其中包括了從Plant那兒繼承而來(lái)的東西)。
2016-01-07 回復(fù) 有任何疑惑可以回復(fù)我~
#6

慕仰9290566

Plant是banna的父類(lèi),那子類(lèi)肯定會(huì)繼承父類(lèi)除了私有的都繼承下來(lái),那雖然子類(lèi)banna是空的,但它繼承了父類(lèi)的就擁有了父類(lèi)的屬性和方法啊,然后hello繼承banna,hello也是會(huì)把banna的除私有的全繼承啊,Plant是hello的間接父類(lèi)并不是它的直接父類(lèi)
2016-05-10 回復(fù) 有任何疑惑可以回復(fù)我~
#7

慕仰9290566 回復(fù) _Jack_Han_ 提問(wèn)者

‘Banana的類(lèi)里是空的,所以Hello什么都沒(méi)繼承到"不怎么對(duì)
2016-05-10 回復(fù) 有任何疑惑可以回復(fù)我~
查看4條回復(fù)

eat方法的運(yùn)行結(jié)果少寫(xiě)了“比如香蕉”,請(qǐng)忽略。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

關(guān)于多層繼承的問(wèn)題,有代碼。(多層繼承是我自己想出來(lái)的詞,不知道恰不恰當(dāng)~)

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)