3 回答

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
這是使用可見場(chǎng)的問題之一-您最終會(huì)使用它們...
你已經(jīng)有了一個(gè)color在外地都Rect和CRect。字段是不是多態(tài)的,所以當(dāng)你使用cr2.color,使用宣布在該領(lǐng)域Rect,它始終設(shè)置為"transparent"。
你的CRect類應(yīng)該不會(huì)有自己的color領(lǐng)域-它應(yīng)該提供顏色與父類的構(gòu)造。一個(gè)矩形具有兩個(gè)不同的color字段是沒有意義的-它可以有borderColor和fillColor當(dāng)然-但color太含糊了...

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
cr2.area()會(huì)打電話,CRect.area()但cr2.color會(huì)使用該字段Rect.color。您應(yīng)該使用函數(shù)風(fēng)格的getArea()和擁有CRect.getColor() { return color; },以及Rect.getColor() { return color; }

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
您應(yīng)該super()在子類的構(gòu)造函數(shù)中包含一個(gè)顯式調(diào)用:
public CRect(double w, double h ,String c) {
super(w, h);
width=w;
height=h;
color=c;
}
添加回答
舉報(bào)