为了账号安全,请及时绑定邮箱和手机立即绑定

public class Cat { protected static String color

public class Cat { protected static String color

眼眸繁星 2019-03-18 17:14:38
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);    }}请分析下面各段程序的运行结果A.WhiteCat whiteCat = new WhiteCat();Cat cat = whiteCat;cat.showColor();cat.showCatColor();答案Cat:randomWhiteCat:white求详细的解释,新手。
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

创建WhiteCat实例,然后把实例复制给cat, 在调用showColor方法,showColor方法是由static 声明的静态方法,静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用。如果子类里面定义了静态方法和属性,那么这时候父类的静态方法或属性称之为"隐藏"。如果你想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是跟实例方法和属性不太一样,存在"隐藏"的这种情况。 而showCatColor方法属于非静态的,则可以被复习。


查看完整回答
反对 回复 2019-04-19
  • 1 回答
  • 0 关注
  • 462 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号