发布网友 发布时间:2022-04-20 08:01
共1个回答
热心网友 时间:2023-06-24 21:08
static
方法
可以被覆盖
但是不可以被动态绑定
也就是说
不可以利用多态性
一位调用的总是父类的static方法
class
A{
static
int
a(){}
}
class
B
extends
A{
static
long
a(){}
}
你编译试试
一定报错:无法覆盖A类中的a方法;
如果把B类的a方法
的返回值
改为int就不会报错
显然javac在告诉我们
static方法是可以覆盖的。、
动态绑定一定要有方法重写
而有方法重写却不一定有动态绑定(在重写static方法是就不会出现动态绑定
子类对象调用的总是父类的static方法)