java - public class Cat { protected static String color = "random";
天蓬老师
天蓬老师 2017-04-18 09:06:43
[Java讨论组]
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:random
WhiteCat:white

求详细的解释,新手。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
高洛峰

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号