可以重写static方法和private方法吗
当然是不能的
static方法 可以被继承,但是不能被重写
首先static方法是编译时静态绑定的,而方法重写时基于运行时动态绑定的。
static方法跟类的实例无关,只跟类有关
虽然不能被重写,但是可以被继承 ,可以在子类中通过 父类类名.方法名 的形式进行访问,
如果父类和子类中拥有相同名称和参数的静态方法,那么该子类其实是隐藏了从父类继承过来的静态方法,这是属于子类自己的方法,而不是重写。
通俗的讲就是,这两个方法是两个没有关系的方法,具体调用哪个就要看是哪个对象的引用,不存在多态的性质。
示例:
定义父类father
public class father {
static void eat(){
System.out.println("爸爸吃");
}
}
定义子类son
public class son extends father {
static void eat(){
System.out.println("儿子吃");
}
public static void main(String[] args) {
son son=new son();
son.eat();
father father=new father();
father.eat();
}
}
此时的输出:
private只能在当前类使用
privat修饰的方法只能在当前类使用,如果是其他的类继承当前的类是不能访问到private修饰的变量和方法的,当然也不能被覆盖
