【发布时间】:2023-04-05 11:34:01
【问题描述】:
据我了解,通常静态方法应该使用类的引用来调用,或者如果它在静态方法或静态块中,则可以直接调用而不引用。
但这适用于从子类静态块调用静态方法时吗?
为什么它允许这样的事情,因为静态方法不被继承,它应该只允许使用父类名对吗?
public abstract class abs {
/**
* @param args
*/
abstract void m();
static void n(){
System.out.println("satic method");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
class myclass extends abs{
@Override
void m() {
// TODO Auto-generated method stub
}
static{
n();
}
}
为什么我的子类静态块可以在没有引用或类名的情况下调用父类静态方法?
【问题讨论】:
-
静态方法被继承。
-
看看this question关于Java中的静态方法继承
标签: java static-methods static-block