zoukankan      html  css  js  c++  java
  • 重写(override)与重载(overload)

    重写(override)

    同一种东西随时随地都只有一种含义,只是原先的含义完全被后来取代了

    重写(override)方法必须满足下列条件

    1.子类方法的名称及参数必须和所覆盖的方法相同

    2.子类方法的返回类型必须和覆盖的方法相同

    3.子类方法不能缩小所覆盖方法的访问权限

    4.子类方法不能抛出比覆盖方法更多的异常

    重载(overload)

    同一种东西在不同地方有多种含义

    重载(overload)方法必须满足下列条件

    1.方法名必须相同

    2.方法的参数的个数或者类型必须不同,都相同的话则不是重载

    3.方法的返回类型和方法的修饰符可以不相同

    public class leetcode_testcase {
        //下面两个uniquePaths的参数不同,则为重载,不报错
        public int uniquePaths(int m, int n) {
            return 0;
        }
        public int uniquePaths(int m, int n,int y) {
            return 0;
        }    
    }
    public class leetcode_testcase {
        //下面两个uniquePaths的参数不同,为重载,不报错
        public int uniquePaths(int m, int n) {
            return 0;
        }
        public int uniquePaths(int m, int n, int y) {
            return 0;
        }
        //第三个uniquePaths函数与第二个uniquePaths函数只有返回值不同
        //则显示Duplicate method uniquePaths(int, int, int)的错误
        public float uniquePaths(int m, int n, int y) {
            return 1.0;
        }
    }
    public class overrideCase extends leetcode_testcase {
        //因为uniquePaths方法的参数和返回值与父类的uniquePaths方法相同
        //则overrideCase子类重写了父类leetcode_testcase的uniquePaths方法
        public int uniquePaths(int m, int n) {
            return 2;
        }
    }
  • 相关阅读:
    CocosCreator-Widget,前后台切换
    Unity获取未激活游戏对象的方法 、坐标转换
    Mathf函数
    C# activeSelf、activeInHierarchy、SetActive、SetActiveRecursively
    C# 碰撞,射线,点击,周期函数等基本代码
    TCP/IP 协议栈
    笔记—《程序员自我修养》
    Container With Most Water 双指针法
    多线程服务器 编程模型
    c++ 高效并发编程
  • 原文地址:https://www.cnblogs.com/yanhowever/p/10618284.html
Copyright © 2011-2022 走看看