public class Cat { protected static String color = "random"; public Cat() { } public void showCatColor() { System.out.println("Cat:" + color); } public static void showColor() { System.out.println("Cat:" + color); }}public class WhiteCat extends Cat { protected static String color = "white"; public WhiteCat() { super(); } public void showCatColor() { System.out.println("WhiteCat:" + color); } public static void showColor() { System.out.println("WhiteCat:" + color); }}請(qǐng)分析下面各段程序的運(yùn)行結(jié)果A.WhiteCat whiteCat = new WhiteCat();Cat cat = whiteCat;cat.showColor();cat.showCatColor();答案Cat:randomWhiteCat:white求詳細(xì)的解釋,新手。
1 回答

楊__羊羊
TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
創(chuàng)建WhiteCat實(shí)例,然后把實(shí)例復(fù)制給cat, 在調(diào)用showColor方法,showColor方法是由static 聲明的靜態(tài)方法,靜態(tài)方法和屬性是屬于類的,調(diào)用的時(shí)候直接通過類名.方法名完成對(duì),不需要繼承機(jī)制及可以調(diào)用。如果子類里面定義了靜態(tài)方法和屬性,那么這時(shí)候父類的靜態(tài)方法或?qū)傩苑Q之為"隱藏"。如果你想要調(diào)用父類的靜態(tài)方法和屬性,直接通過父類名.方法或變量名完成,至于是否繼承一說,子類是有繼承靜態(tài)方法和屬性,但是跟實(shí)例方法和屬性不太一樣,存在"隱藏"的這種情況。 而showCatColor方法屬于非靜態(tài)的,則可以被復(fù)習(xí)。
添加回答
舉報(bào)
0/150
提交
取消