zoukankan      html  css  js  c++  java
  • JAVA父类的静态方法能否被子类重写?

    静态:

      在编译时所分配的内存会一直存在(不会被回收),直到程序退出内存才会释放这个空间,在实例化之前这个方法就已经存在于内存,跟类的对象没什么关系。子类中如果定义了跟父类相同名称、相同的形参列表、相同返回值类型的静态方法,就满足重写的条件,于是在内存中又分配了一块给子类的静态方法,重写了父类方法。

    父类代码

    1 public class Fu {
    2     public static void show() {
    3         System.out.println("父类的静态方法");
    4     }
    5     public void method() {
    6         System.out.println("父类的一般方法");
    7     }
    8 }

    子类代码

    public class Zi extends Fu {
        public static void main(String[] args) {
            Fu fu = new Zi();
            fu.show();
            fu.method();
        }
        public static void show() {
            System.out.println("子类的静态");
        }
        public void method() {
            System.out.println("子类的一般方法");
        }
        
    }

     输出结果是:

     父类的静态方法

     子类的一般方法 

      当父类引用指向子类对象,只会调用父类的静态方法,此行为并不具有多态性!所以子类重写父类的静态方法,并没有实际意义!

  • 相关阅读:
    计算机
    产品经理
    Vue router-link路由不同的写法,不一样的效果
    elementui样式引入方法
    格式化启动盘win10
    删除mongdb中的数据库
    google浏览器快速清除历史记录
    js动画之弹球打砖块小游戏
    js动画之面向对象二
    js动画之面向对象一
  • 原文地址:https://www.cnblogs.com/sunbr/p/11545010.html
Copyright © 2011-2022 走看看