• java基础之重载与重写


    重载与重写

    java中有overload重载和override重写

    重载

    重载是指一个类中有多个名称相同但是参数列表不同的方法(参数列表不同是指参数个数或类型不同),编译器在比较方法重载时会忽略掉它们的返回类型以及抛出的异常

    重写

    重写是指子类中的方法与父类中的某个方法名称和参数完全相同,通过子类创建的实例对象将父类中的这个方法覆盖掉,是面向对象多态性的一种表现。

    子类重写父类的方法

    • 只能比父类抛出更少的异常,或者抛出父类抛出异常的子异常
    • 子类方法的访问权限只能比父类的更大,如果父类方法为private,那么相当于子类中增加了一个全新的方法

    必须符合以上两点的原因是因为多态的机制,在使用子类对象指向父类引用时,调用父类的方法被认为是合法的,但是如果子类的访问权限比父类小,或者子类抛出的异常比父类多,这在编译上是不允许的,与多态机制是矛盾的

    • 静态方法不可被重写,否则会出现编译错误

      Instance method 'testStatic()' in 'com.zhanghe.study.duotai.Child' cannot     override static method 'testStatic()' in 'com.zhanghe.study.duotai.Parent'  
      • 1

    隐藏字段

    java中父类和子类中如果有相同的字段的话,会进行字段隐藏,字段是没有进行动态绑定的,在哪里被调用,就返回对应值

    public static void main(String[] args) {
        Parent p = new Child();
        // parent
        System.out.println(p.name);

        Child c = new Child();
        // child
        System.out.println(c.name);

    }


    static class Parent{
        public String name = "parent";
    }

    static class Child extends Parent{
        public String name = "child";
    }
    • 1

    https://zhhll.icu/2020/java基础/面向对象/6.重载与重写/

    本文由 mdnice 多平台发布

  • 相关阅读:
    java初学
    【QT开发(14)】QT P2P chat 聊天
    dropwizard中上传和下载文件
    JavaWeb之Session的简单使用!!!
    Linux系统学习
    ApplicationRunner applicationRunner 是什么?
    成功解决eNSP模拟器中路由器启动失败,错误码40
    1230天,百度再见!!!
    详细解读-Spring请求处理
    胜哥测评:电视机顶盒哪个牌子好?2023网络机顶盒排行榜
  • 原文地址:https://blog.csdn.net/Lxn2zh/article/details/133744135