抽象类中的Java静态属性

use*_*095 1 java static attributes abstract

我想在milk类中设置名称和代码静态属性.为什么这不起作用?我甚至无法覆盖名称和代码的setter/getters.

    public abstract class Cow {
        private static String name;
        private static String code;

    ...
     public static String getName() {
            return name;
        }

        public static void setName(String name) {
            Cow.name = name;
        }

        public static String getCode() {
            return code;
        }

        public static void setCode(String code) {
            Cow.code = code;
        }
    ...
    }

public class Milk extends Cow{

...
    static {
            Milk.setName("asdmilk");
        Milk.setCode("KDDFA");
        }
..

}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

为什么这不起作用?

每个子类都没有获得一组静态变量Cow,并且根本无法覆盖静态方法.静态成员基本上不是多态的.

目前尚不清楚为什么要尝试这样做,但基本上如果你声明一个静态变量,那么就有一个变量,一个完全停止.呼叫Milk.setName完全等同于Cow.setName在此呼叫.