重载(Overload)和重写(Override)有哪些区别呢?重载的方法能否根据返回类型进行区分呢?
下文笔者将讲述重载同重写的区别,及重载的注意事项,如下所示:
方法的重载和重写都是实现多态的方式 两种实现多态的方式不一样: 重载:是编译时实现的多态 重写:是运行时实现的多态 ------------------------------ 发生位置不同: 重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则称之为重载 重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)
重载对返回类型没有特殊的要求---因为调用者无法知道其返回类型, 例: float testFun(float i,int j); int testFun(float i,int j); -------调用时---- testFun(1F,2);//调用时,编译器无法区别到底使用的是哪一个方法
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。