关于java中父类静态方法能否被之类重写的问题
1. 先说结论:
不能被重写
2. 为什么??
②. 所引用该方法的对象指向的都是内存中同一块内存的数据, 已经写死了呀, 那你还怎么重写呢
3. 静态方法可以直接用类名调用这么方便,为什么不都设定为静态属性和方法?
①.静态方法从属于类, 可以通过类名直接调用, 在编译之后所分配的内存会一直存在(不会被回收),直到程序退出内存才会释放这个空间。
如果全是静态方法和属性, 则内存被占据, 哪来的内存运行程序
4. 猜想: 在之类中编写一个和父类相同的方法, 应该是在内存中又分配了一块单独内存
public class ADHero extends Hero{ //自动生成里面就没有父类的静态方法 //直接复制试一试 public static void read() { System.out.println("这是子类中的静态方法"); } public static void main(String[] args) { Hero h = new ADHero(); h.read(); //------>输出: 这是父类的静态方法 ADHero adh = new ADHero(); adh.read(); //------------->输出: 这是之类的静态方法 } }