Overload和Override
1、相同点
方法重写override与方法重载overload都是实现多态的方式。
2、不同点/区别
①方法重载overload
(1)方法名必须相同,
(2)但参数列表必须不同,即方法的参数类型不同、参数个数不同、参数顺序不同,或三者都不同,与反回值类型无关。
(3)重载的方法是可以改变返回值类型的。同时,如果两个方法的参数列表完全一样,是不能通过让他们的返回值类型不同来实现重载的
②方法重写override
(1)参数列表必须完全与被重写方法的相同;
(2)返回类型必须完全与被重写方法的返回类型相同;
(3)访问权限不能比父类中被重写的方法的访问权限更高。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
(4)final方法不能被重写
(5)子类方法不可以抛出比父类更多或更宽泛的异常
(6)private不能被覆盖,只是一个重新定义
(7)static方法不能被重写,只能被重新定义
③方法重载是编译时的多态性,而实方法重写是运行时的多态性。
④方法重载发生在一个类中,而方法重写发生在子类与父类之间。
3.实例
①Overrride实例 :
class A{ public int getVal(){ return(5); }
} class B extends A{ public int getVal(){ return(10); }
} public class override { public static void main(String[] args) { B b = new B(); A a= (A)b;//把 b 强 制转换成A的类型 int x=a.getVal(); System.out.println(x); }
}
结果:10
②Overload实例:
//Demostrate method voerloading.
class OverloadDemo { void test(){ System.out.println("NO parameters"); } void test(int a){ System.out.println("a:"+a); }//end of Overload test for one integer parameter.void test(int a, int b){ System.out.println("a and b:"+a"+"+b); } double test(double a){ System.out.println("double a:"+a); return a*a; }
} public class Overload{ public static void main(String[] args) { OverloadDemo ob = new OverloadDemo(); double result; ob.test(); ob.test(10); ob.test(10, 20); result = ob.test(123.25); System.out.println("Result of ob.test(123.25):"+result); }
}
输出:
NO parameters
a:10
a and b:10 20
double a:123.25
Result of ob.test(123.25):15190.5625
Overload和Override相关推荐
- 公有/私有/保护继承、overload/overwrite/override之间的区别
一.继承 C++很重要的一个特征就是代码重用.在C语言中重用代码的方式就是拷贝代码.修改代码.C++可以用继承或组合的方式来重用.通过组合或继承现有的的类来创建新类,而不是重新创建它们. 继承是使用已 ...
- 从零开始学C++之继承(一):公有/私有/保护继承、overload/overwrite/override之间的区别...
一.继承 C++很重要的一个特征就是代码重用.在C语言中重用代码的方式就是拷贝代码.修改代码.C++可以用继承或组合的方式来重用.通过组合或继承现有的的类来创建新类,而不是重新创建它们. 继承是使用已 ...
- overload、override、new解释
重载.重写.覆写,分别指的是overload.override.new. 一.override重写,是在子类中重写父类中的方法,两个函数的函数特征(函数名.参数类型与个数)相同.用于扩展或修改继承的方 ...
- 类的 三大特性 封装,继承,多态 overload与override的区别
OOP三大特性:封装,继承,多态 封装的目的:为了让类更安全 封装的做法: 1.类里面的成员变量做为private 2.使用成员方法来间接访问成员变量 3.在该方法里面加限制条件 php类里面不允许出 ...
- idea重写接口没有@override_细说 Java Overload 与 Override 差别
Java 编程五年多,我自以为已经熟谙 Overload 和 Override 背后的工作机制.当开始思考和记录下面这些案例时,才意识到我对它们的了解并不像自己想象的那样.为了让内容更有趣,下面会把它 ...
- C++中的Overload、Override和Overwrite
在C++语言中有一组基础的概念一直都容易混淆:Overload.Override和Overwrite分别表示什么意思?下面把这三个概念整理一下: 1. Overload(重载) 重载的概念最好理解,在 ...
- Overload和Override的区别说明
下文笔者讲述Overload和Override的区别简介说明,如下所示: Overload:重载Override:覆盖(重写)------------------------------------- ...
- Overload和Override的区别。
Overload和Override的区别. Overloaded的方法是否可以改变返回值的类型? Overload是重载的意思,Override是覆盖的意思,也就是重写. 重载Overload表示同一 ...
- Overload 和Override 的区别。Overloaded 的方法是否可以改变返回值
Overload 和Override 的区别.Overloaded 的方法是否可以改变返回值的类型? Overload 是重载的意思,Override 是覆盖的意思,也就是重写. 重载Overload ...
- 重载和覆盖的区别?(overload vs override)
override与overload的区别? override 表示重写,overload 表示重载. override是子类和父类之间的关系,是垂直关系:overload是同一个类中方法之间的关系,是 ...
最新文章
- 目标跟踪初探(DeepSORT)
- 计算机网络安全反思,网络安全教育教学反思范文
- 不再迷惑,无值和 NULL 值
- HDU 4549 M斐波那契数列
- JavaScript String支持的辅助format函数+【分页1】
- laravel increment出现了翻倍递增_中国股市:如何判断“强庄股”的出现,看懂主力心甘情愿送钱上门...
- java成员访问属性,在Java中,针对类、成员方法和属性提供了四种访问级别,分别是private、static、prot...
- matlab泰勒 习题,泰勒公式及其应用典型例题
- 华为认证工程师HCNE培训资料
- Android Transition
- 谈谈我职业生涯中的三次潦倒 Leo病中的思考 续
- Relative Ranks问题及解法
- python编程题13-蒙特·卡罗方法计算圆周率
- beeline 查询表数据导出到本地文件csv
- 解码方法( dfs | dp )
- 钉钉小程序编译时提示 ‘dd is not defined‘
- 这就是那个著名的接雨水算法题详解
- 一道技术美术的面试题
- Python异常及处理
- package.json中private选项的作用
热门文章
- 在Windows Server 2008和Vista中增加恢复菜单WinRE
- 基于决策树对鸢尾花进行分类
- snmp工具_运维超级好用工具大PK,你在用哪个?
- 手机必备应用:狐猴浏览器,一站式开启浏览器的所有用法
- 2018年​最酷的APP手机UI设计趋势
- e-mobile服务器地址显示无法登陆,E-Mobile服务器安装设置手册.doc
- 列举所有的“四叶玫瑰数”,并统计四叶玫瑰数的个数 四叶玫瑰数:是一个四位数,各个位的数字的四次方的和,为该数字本身
- Nexus私服(三)
- 多校冲刺NOIP模拟6 - 游戏——矩阵乘法、后缀自动机SAM
- 有趣又实用的软件,给生活增添趣味