”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

462 阅读1分钟
(笔记)

Static

1可以修饰:成员变量,成员函数 2静态函数只能访问静态成员
3静态成员是随着类的加载而加载的,所以可以用类进行访问

override

private

重写的前提是必须要继承,private修饰不支持继承,因此被私有的方法不可以被重写。

static

Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。

(原文)

Static表示静态的意思,可用于修饰成员变量和成员函数,被静态修饰的成员函数只能访问静态成员,不可以访问非静态成员。静态是随着类的加载而加载的,因此可以直接用类进行访问。

Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。
java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能覆盖。