- 浏览: 214713 次
- 性别:
文章分类
- 全部博客 (213)
- jsp (2)
- 数据库 (3)
- photoshop cs4破解 (0)
- 关闭windows更新 (1)
- myeclipes开发经验总结 (1)
- 再次探究Unicode与ASCII编码 (1)
- hp probook 4411s电脑在用光盘安装时没有镜像问题 (1)
- hp probook 4411s电脑在xp系统下安装快捷键的问题 (1)
- 关于双系统和三系统的安装 (1)
- win7下个性化透明度的修改 (1)
- 原型开发工具axure (1)
- 将数据库表间关系导入到visio (1)
- word中自动生成目录 (1)
- 数据库日志文件已满的处理方法及更改数据库日志文件大小的方法 (1)
- 关于数据库语句insert的总结 (1)
- SQL Server2005创建登录名 (1)
- 登录名登陆时出现无法打开用户默认数据库登录失败 (1)
- 登录名登陆时出现 sql server 2005 sa登录报错:已成功与服务器建立连接,但是在登录过程中发生错误。 (1)
- 对于在写文章时标号的使用 (0)
- 对于论文word排版的技巧 (1)
- 求职简历的书写 (1)
- 惠普HP 4411s拆机 图文教程 (适用于4411s、4410s、4416s、4510s、4311s拆机) (1)
- 学术论文各部分的写作要求与写作方法 (1)
- 毕业论文的规范 (1)
- 对于在写文章时标号的使用(学术性论文) (0)
- 对于在写论文时标号的使用(学术性论文以及毕业论文) (1)
- 终止正要运行的程序 (1)
- : Address already in use: JVM_Bind (端口被占用) (1)
- 关于用myeclipes开发jsp程序时的问题 (1)
- 在连接数据库时出现此驱动程序不支持 Java Runtime Environment (JRE) 1.6 版。请使用支持 JDBC 4.0 (1)
- 关于数据表命名以及在网页中显示的图片命名问题 (1)
- 关于jsp中数据库的连接问题 (1)
- win7下建立无线网络(一网多人共享) (1)
- Adobe dreamweaver cs5 photoshop cs5的破解文件以及注册号 (0)
- Windows 使用技巧之WinZIP密码破解 (1)
- 破解WINRAR以及去除购买提示的方法 (1)
- win7激活 (0)
- win7(ultimate)激活 (0)
- 去除windows7安全提示的方法 (1)
- u盘上的操作系统(winpe的制作) (1)
- 将数据库表间关系导出到visio (1)
- css+div中三列自适应宽度问题 (1)
- css+div小小总结 (1)
- Adobe dreamweaver cs5 photoshop cs5的破解文件 以及注册号 (0)
- 每次开机都会出现 “C:\WINDOWS\system32\source\系统程序勿删除.vbs ” (1)
- sql server 2005中int char varchar nvarchar 的区别 (1)
- dos命令以及制作.bat文件 (1)
- 一键清理系统垃圾.bat文件 (1)
- jsp的email功能 (1)
- 数据库连接池 (1)
- JAVA_HOME和TOMCAT_HOME (1)
- 查看计算机的网络信息 (1)
- 关于jcreator的问题 (1)
- java中main函数的作用 (1)
- 堆和栈的区别 (1)
- 连接数据库sql server 2005时端口的问题 (1)
- 对于html中form表单的认识 (1)
- 连接数据库驱动时的.newInstance() (1)
- Displaytag详解 (1)
- xml文件的配置 (1)
- server.xml文件的配置 (1)
- tomcat中conf中的context.xml的配置 (1)
- Web.xml文件配置详解 (1)
- tomcat 7: IllegalArgumentException: taglib definition not consistent with specification version (1)
- 数据库中创建自增列 (1)
- jsp中的分页问题 (1)
- 在jsp中null与("")的区别 (1)
- servlet中不同页面中传值的四种方式 (1)
- jsp中标签库的使用 (1)
- 广播域与冲突域 (1)
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap分别的区别 (1)
- this的小问题 (1)
- 虚函数和虚基类、纯虚函数、抽象类抽象方法 ,动态绑定 (1)
- Overload和Override的区别 (1)
- NumberFormatException异常 (1)
- 在编程时的两个小问题 (1)
- 关于将数据库中的数据返回list的问题 (1)
- java ee 13种技术规范 (0)
- java ee 13种技术(规范) (1)
- JSP和Struts解决用户安全退出问题 (1)
- cookie的安全性问题 (1)
- 数据库操作返回值的问题 (1)
- java产生随机数 (1)
- 关于NoClassDefFoundError异常的问题 (1)
- java中的大树问题 (0)
- java中的大数问题 (1)
- NumberFormatException错误 (1)
- 两个小技巧 (0)
- 几个个网络中查看一些值(ip (1)
- arp (1)
- tcp (1)
- udp (1)
- mac等)小技巧 (1)
- js的使用小知识点 (1)
- myeclipse破解 (0)
- myeclipse编译问题 (1)
- servlet的部署问题 (1)
- 关于编码知识以及中文乱码的解决方案 (1)
- 关于javac与java命令的一个小问题 (1)
- css与div的比较 (1)
- 在写存储过程中注意的问题 (1)
- 项目开发中的几点规范 (1)
- java转义字符 (1)
- 移动字幕 (1)
- 动态网站功能模块介绍 (1)
- 什么是ajax (1)
- 图片查看器以及图片轮换代码收集 (1)
- 网站中的日历汇总 (1)
- javax.servlet.ServletException: File "/up.jsp" not found (1)
- 验证码 (1)
- jsp的几个小问题 (1)
- Jcreator Pro 4.50注册码 (1)
- javabean的自动生成 (1)
- res.sendRedirect()和req.getRequestDispatcher().forward(req (1)
- res)的区别 (1)
- 用displaytag组件实现分页详解 (1)
- 将已有项目导入myeclipse中 (1)
- uri url urn的原理及java实现 (1)
- java中object(String)类型转换为int (1)
- 对于out.print、out.println、out.write的理解 (1)
- 静态生成 (1)
- 获取字符串的特定字符 (1)
- 异常详细信息: System.Data.SqlClient.SqlException: 将截断字符串或二进制数据 (1)
- 把字符类型转换成时间类型 (1)
- The method getRealPath(String) from the type ServletRequest is deprecated (1)
- java中对于文件操作的总结 (1)
- servlet用jspsmart上传的时候获得pageContext对象 (1)
- jspSmartUpload上传下载 (1)
- 关于用jspSmartUpload控件上传文件并附带参数 (1)
- 关于数据库字段的设计 (1)
- 关于数据库的主外键 (1)
- 数据库的使用 (1)
- 让页面加载前执行js等事件 (1)
- JS页面跳转 (1)
- 有关于jsp中的包含页面 (1)
- 关于textarea的几点 (1)
- JSP数据和JavaScirpt数据交互使用问题的一种解决方法 (1)
- jsp中引用javascript中的变量和js中引用jsp的变量 (1)
- quote symbol expected错误 (1)
- div+css文字垂直居中 (1)
- 调用存储过程(转载) (1)
- Java调用SQL Server的存储过程详解 (1)
- execute、executeQuery和executeUpdate之间的区别 (1)
- 关于form表单与链接 (1)
- java程序的执行过程 (1)
- myeclipse设置快捷键 (1)
- 【摘】eclipse 中如何安装插件 (1)
- java.lang.IllegalArgumentException: Cannot format given Object as a Date (1)
- 常见数据库常用端口 (1)
- 用电脑建手机wifi(不用软件) (1)
- word如何自动生成目录 (1)
- sql server (mssqlserver)无法启动 (1)
- 如何删除自带的软件(包括联通定制机自带软件) (1)
- Oracle数据库、实例、用户、表空间、表之间的关系 (1)
- lt18i获得root权限 (1)
- 无法启动承载网络 连接到系统上的设备没有发挥作用 (1)
- XP with SP3 VOL 下载及密钥 (0)
- 开机时默认启动系统设置 (1)
- 对于目标文件系统,文件XXXXX过大 (1)
- 只有ie能上网,其他浏览器和软件都不能 (1)
- j2me搭建环境 (1)
- asp连接sql server数据库方式 (1)
- 清除cookie和flashcookie (1)
- 不能上网的一个原因 (1)
- 新增迅雷下载地址:Objective-c/iOS/iphone开发视频教程迅雷/高速下载 (1)
- ie不能上网 (1)
- 五款免费VPN介绍 (0)
- Java处理多人同时读写文件的文件锁处理 (1)
- 去除开机后出现拨号连接提示框 (1)
- 关于eclipse编码的问题 (1)
- eclipse tomcat的使用 (1)
- Eclipse中将web项目发布到Tomcat webapps (1)
- The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: (1)
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} (1)
- Eclipse下Tomcat插件的安装 (1)
- 无法启动程序,因为计算机中丢失MSVCP71.DLL (1)
- oracle 10g的安装与卸载 (1)
- ORA-12154: TNS: 无法解析指定的连接标识符 (2)
- oracle客户端plsql的使用方法 (1)
- Eclipse自动生成UML图 (1)
- win7开通远程桌面访问 (1)
- 在远程连接时提示“您的凭据不工作”怎么办 (1)
- java.util.ConcurrentModificationException (1)
- java关于xml操作的一点理解 (1)
- Exception:Content is not allowed in prolog (1)
- java.net.SocketException: Connection reset (1)
- java FTPClient的使用 (1)
- 三种tomcat部署项目的方法 (1)
- excel冻结窗格 (1)
- java中获取系统属性以及环境变量 (1)
- 安裝 AnyConnect 時出現錯誤訊息「The VPN client agent was unable to create the interprocess communication depot.」 (1)
- linux 与windows实现端口转发 (1)
- TTL expired in transit (1)
- route add 行业应用 (1)
- java 数字证书操作(转) (1)
- Software caused connection abort: recv failed 一种解决办法 (1)
- inputStream对象的available()方法 (1)
- web.xml 中的listener、 filter、servlet 加载顺序及其详解 (1)
- java.lang.NumberFormatException: For input string: "" (1)
- ajax向后台传中文报错 (1)
- 刷新父窗口方法 (1)
- [转载]Eclipse-修改工程名 (1)
- 内存溢出之Tomcat内存配置(转) (1)
- forword 和redirect的区别(转) (1)
- 页面中禁用鼠标右键和回格键 (1)
- 中文乱码 (1)
- 父页面刷新问题 (1)
- spring 事务管理 (1)
- 关于异常类型 (1)
- 关于systeminfo的使用 (1)
- https及ca证书 (1)
- sql限制总结 (1)
- Cannot assign requested address出现的原因及解决方案 (转) (1)
- du与df的区别(转载) (1)
- jvm内存模型及可能出现的内存溢出 (1)
- 高并发下的oom killer (1)
- oracle如何看执行计划 (1)
- 关于批量作业中遇到的问题 (1)
- 浅谈应用日志 (1)
- 自认证证书的创建 (1)
- java集合应用 (0)
- java多线程 (0)
- 高并发思考 (0)
- 关于java IO (0)
- 加装ssd不重装系统,系统迁移 (1)
- linux下查看jdk版本 (1)
- linux内存 (1)
- pdm的使用 (0)
- mysql不走索引的原因 (0)
- java字符编码 (0)
- mysql视图效率优化 (1)
最新评论
-
hualom:
...
Displaytag详解
浅谈Overload和Override的区别
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。本文介绍的是Overload和Override的区别。
Overload是重载的意思,Override是覆盖的意思,也就是重写。
重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。
重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。
子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。
至于Overloaded的方法是否可以改变返回值的类型这个问题,要看你倒底想问什么呢?这个题目很模糊。如果几个Overloaded的方法的参数列表不一样,它们的返回者类型当然也可以不一样。
但我估计你想问的问题是:如果两个方法的参数列表完全一样,是否可以让它们的返回值不同来实现重载Overload。这是不行的,我们可以用反证法来说明这个问题,因为我们有时候调用一个方法时也可以不定义返回结果变量,即不要关心其返回结果,例如,我们调用map.remove(key)方法时,虽然remove方法有返回值,但是我们通常都不会定义接收返回结果的变量,这时候假设该类中有两个名称和参数列表完全相同的方法,仅仅是返回类型不同,java就无法确定编程者倒底是想调用哪个方法了,因为它无法通过返回结果类型来判断。
override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。在覆盖要注意以下的几点:
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
overload对我们来说可能比较熟悉,可以翻译为重载,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。在使用重载要注意以下的几点:
1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int,float),但是不能为fun(int,int));
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
4.对于继承来说,如果某一方法在父类中是访问权限是private,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。
总之,重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。很重要的一点就是,Overloaded的方法是可以改变返回值的类型。希望对你有帮助。
另外:
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。本文介绍的是Overload和Override的区别。
Overload是重载的意思,Override是覆盖的意思,也就是重写。
重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。
重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。
子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。
至于Overloaded的方法是否可以改变返回值的类型这个问题,要看你倒底想问什么呢?这个题目很模糊。如果几个Overloaded的方法的参数列表不一样,它们的返回者类型当然也可以不一样。
但我估计你想问的问题是:如果两个方法的参数列表完全一样,是否可以让它们的返回值不同来实现重载Overload。这是不行的,我们可以用反证法来说明这个问题,因为我们有时候调用一个方法时也可以不定义返回结果变量,即不要关心其返回结果,例如,我们调用map.remove(key)方法时,虽然remove方法有返回值,但是我们通常都不会定义接收返回结果的变量,这时候假设该类中有两个名称和参数列表完全相同的方法,仅仅是返回类型不同,java就无法确定编程者倒底是想调用哪个方法了,因为它无法通过返回结果类型来判断。
override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。在覆盖要注意以下的几点:
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
overload对我们来说可能比较熟悉,可以翻译为重载,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。在使用重载要注意以下的几点:
1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int,float),但是不能为fun(int,int));
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
4.对于继承来说,如果某一方法在父类中是访问权限是private,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。
总之,重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。很重要的一点就是,Overloaded的方法是可以改变返回值的类型。希望对你有帮助。
另外:
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
相关推荐
overload and override.txt的区别重载和隐藏的区别
本文详细地描述了overload 和override的区别
Delphi面向对象:overload与override[文].pdf
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现,想要了解更多请参考本
override and overload difference
重载overload,这个概念是大家熟知的。在同一可访问区内被声名的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制就是重载
C#中方法的重写(override)和重载(overload)的区别
本文主要介绍了PHP中overload与override的区别。具有很好的参考价值,下面跟着小编一起来看下吧
以下是对C++中overload,override,overwrite的区别进行了详细的分析介绍,需要的朋友可以过来参考下
Override Overload Overwrite 马克-to-win Java视频
java 面试题(1)都是...Vector, LinkedList的存储性能和特性7. &和&&的区别8. HashMap和Hashtable的区别9. final, finally, finalize的区别10. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
在 Cat 类中,使用相同的名称和参数列表来重新定义了 move() 方法,并且使用 @Override 注解向编译器说明这是一个重写方法。 class Animal { public void move() { System.out.println("动物可以移动"); } } ...
overload和override的区别 override(重写)
描述Struts体系结构及Overload和Override的区别。
JAVA相关基础知识,例如:Overload和Override的区别
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
Java就业面试题大全 面向对象的特征有哪些 Overload 和Override的区别 abstract class和interface有什么区别? error和exception有什么区别?