Java中静态常量可以被覆写吗?

Java中静态常量可以被覆写吗?在一个类中定义一个静态常量,它的子类类中定义一个同名的静态常量,这样可以吗?

子类可以定义与父类同名的静态常量的,但是各是各的,没有关联的。

静态常量不可以被覆写得,普通常量可以的

你说的复写是什么意思。首先,静态成员根本就没有继承的概念,所以不存在复写(override)

因为静态成员通过类名访问,你不能通过派生类得到基类定义的静态成员,反之也是,所以根本不存在什么复写不复写。用什么类名访问的就是什么。

静态常量是可以被重新赋值的

静态常量是可以被重新赋值的

如果是private的,就没有覆盖不覆盖的说法,只是各自不同的变量
如果是protected或者public,也应该不是覆写,因为都可以在子类那里读取到

在Java中,静态变量、静态方法、静态代码块儿都属于类成员,类成员属于类的。静态成员都不能被重写(override),如果子类中定义了和父类一样的类成员变量,那么子类的类成员变量和父类对应的类成员变量没有继承关系,是各自分开的。
另外,Override(重写)是Java继承和多态的一种表现形式,而继承和多态是只有实例方法才具有的。

没有联系的,都是独自分开的

//Test.java
class A{
static int i=9;
static void print(){System.out.println(i);}
}

class B extends A{}

public class Test{
public static void main(String[] args){
B.print();//这里B的print()就是A里面的
System.out.println(B.i);//这里B.i就是A.i
}
}

结果:

java Test
9
9
Exit code: 0
这里为什么可以继承?

静态常量不可以被覆写得,普通常量可以的,但是静态常量是可以被重新赋值的。要区分清楚。