• 重载与重写


    重载与重写

    1、 重载

    重载:方法名相同而形式参数不同。(参数类型列表不同或参数顺序不同)
    特点:
    (1) 传入的数据类型小于方法中声明的参数类型,实际类型数据会被提升。(char类型略有不同,若无法找到接受char类型的参数则直接把char类型提升为int类型)。
    (2) 若传入的实际参数大于重载方法中的参数类型,则通过类型转换来执行窄化转换。
    (3) **不能通过返回值来区分重载方法。**即

    public void example(){
    } 
    //重载与返回值无关,所以即使返回值不同一个为void无返回值,一个为int返回值,也是重载了方法public void example()
    public int example(int m,float f){
    }
    //不是重载,与返回值无关,参数列表及类型相同会报错。
    public int example(){
    }
    

    在重载中,运用的是静态多分派,即根据静态类型确定对象,因此不能根据new的类型确定调用的方法

    重写

    方法重写应遵循“二同二小一大”原则:
    “二同”:即方法名相同,形参列表相同;
    “一小”:子类方法声明抛出的异常比父类方法声明抛出的异常更小或者相等;
    “另一小”:子类返回类型小于等于父类方法返回类型;
    “一大”:子类方法的访问修饰符应比父类方法更大或相等。

    在重写中,运用的是动态单分配,是根据new的类型确定对象,从而确定调用的方法;

  • 相关阅读:
    [CF1398E] Two Types of Spells
    [CF1399E2] Weights Division (hard version)
    [CF1400E] Clear the Multiset
    Review 2020.10.29
    Review 2020.10.11
    [CF1409F] Subsequences of Length Two
    [CF1413E] Solo mid Oracle
    [2020CCPC威海C] Rencontre
    [2020CCPC威海B] Labyrinth
    phpredis实现简单的消息队列
  • 原文地址:https://www.cnblogs.com/0427mybirthday/p/7668922.html
Copyright © 2020-2023  润新知