关于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(); //------------->输出: 这是之类的静态方法
    }
    
}

猜你喜欢

转载自www.cnblogs.com/noino/p/10187669.html