Java的重载(Overload)与重写(Override)
来源:互联网 发布:idea java文件 蓝色j 编辑:程序博客网 时间:2024/05/22 00:52
来源:http://fatkun.com/2010/07/java-overload-and-overrid.html
重载与重写之间的差别
区别点
重载方法
重写方法
参数列表
必须修改
一定不能修改
返回类型
可以修改
一定不能修改
异常
可以修改
可以减少或删除,一定不能抛出新的或者更广的异常
访问
可以修改
一定不能做更严格的限制(可以降低限制)
重载(Overload)
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
只能重载构造函数
规则
- 被重载的方法必须改变参数列表;
- 被重载的方法可以改变返回类型;
- 被重载的方法可以改变访问修饰符;
- 被重载的方法可以声明新的或更广的检查异常;
- 方法能够在同一个类中或者在一个子类中被重载。
- 重写(Override)
能够在需要新的子类特有行为时重新在子类中定义方法。
规则
- 参数列表必须完全与被重写方法的相同;
- 返回类型必须完全与被重写方法的返回类型相同;
- 访问级别的限制性一定不能比被重写方法的强;
- 访问级别的限制性可以比被重写方法的弱;
- 重写方法一定不能抛出新的检查异常或比被重写的方法声明的检查异常更广泛的检查异常
- 重写的方法能够抛出更少或更有限的异常(也就是说,被重写的方法声明了异常,但重写的方法可以什么也不声明)
- 不能重写被标示为final的方法;
- 如果不能继承一个方法,则不能重写这个方法。
- 调用
重载方法:
参数类型决定选择哪个重载版本(根据声明的参数类型),这发生在编译时。被调用的实际方法仍是发生在运行时期的虚拟方法调用。但是编译器已经知道所调用的方法的签名。因此,在运行时期,参数匹配已经明确,只是还不知道该方法所在的实际类。
重写方法:
对象类型(即:堆上实际实例的类型决定调用选择哪个方法,这发生在运行时期)
- Java的重载(Overload)与重写(Override)
- Java的重载(Overload)与重写(Override)
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- Java区分---OverLoad重载与Override重写
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- java 重写(Override)与重载(Overload)浅谈
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- Java 重写(Override)与重载(Overload)
- 【Java基础】 重写(Override)与重载(Overload)
- input2byte
- ZeroMQ的学习和研究
- <<C语言深度剖析>>学习笔记之二:关键字详解
- UVA 10400 - Game Show Math
- zlib libs
- Java的重载(Overload)与重写(Override)
- 使用DBUtil前的准备工作
- C语言中的数组与指针
- openssl简介-协议
- .NET代码生成工具
- 关于MVC3,从客户端(userName="<hr />")中检测到有潜在危险的 Request.Form 值的错误
- LISP 6.1 变量的基础
- 跨站点脚本攻击深入解析
- Qt从网络读取数据写入本地二进制文件