class A{
public static void test(){
}
}class B extends A{
public static void test(){
super.test();
}
}编译的时候,就会报错,为何静态方法不能被子类重载?
public static void test(){
}
}class B extends A{
public static void test(){
super.test();
}
}编译的时候,就会报错,为何静态方法不能被子类重载?
class A{
public static void test(){
}
}class B extends A{
public static void test(){
A a=new A();
a.test();
}
}
1。super, this等关键字不能用于静态方法中
2。静态方法及对象将被同类或者所有子类的实例所共享,因为子类和父类的关系是"is-a"。但是,尽管子类对象可以共享父类的静态方法,那么它为何不能重载父类的静态方法呢,其实我觉得静态只是表明一种全局唯一的概念,如重载(override)应该没有关系?
说的对,是覆盖!
super使用不当.
因为static的方法是属于类对象的,
在类对象中谈自然super自然不当
1.静态方法里只能调用静态变量和方法。
2.静态方法属于类的,而不是属于对象的。
3.静态方法中不能使用THIS,SUPER关键字.
4.我认为静态方法只要能被继承就能被重写。
很高兴能和大家交流,做个朋友,说的不对请指教。