首页 > 代码库 > 静态方法不能重写

静态方法不能重写

1.静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法。

class Cat{    protected static String color ="random";    public void showCatColor(){        System.out.println("Cat : "+color);    }    public static void staticShowColor(){        System.out.println("Cat static  : "+color);    }}class WhiteCat extends Cat{    protected static String color ="white";    public void showCatColor(){        System.out.println("WhiteCat :"+color);    }    public static void staticShowColor(){        System.out.println("WhiteCat static :"+color);    }}

2.测试

面试官看了结果后,直接叫我回去。

    public static void main(String[] args) {        //            WhiteCat whiteCat = new WhiteCat();//            Cat cat = whiteCat; //            cat.staticShowColor();//            cat.showCatColor();            /**             * Cat static  : random             * WhiteCat :white             */                //        Cat cat = new WhiteCat();//        WhiteCat whiteCat = (WhiteCat)cat;    //其实和上面的那段代码是相同的         //        cat.staticShowColor();                //都是调用父类的静态方法,输出父类的静态变量//        cat.showCatColor();                /**         * Cat static  : random         * WhiteCat :white         */                        //            Cat cat = new Cat();//            WhiteCat whiteCat = cat; //cannot convert from Cat to WhiteCat//            cat.staticShowColor();//            cat.showCatColor();    }