当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

override是个什么?

发表于: 2014-07-03   作者:紫梦飘逸   来源:转载   浏览:
摘要:    override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。    在覆盖要注意以下的几点: 1、覆盖的方法的标志必须要

   override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。
   在覆盖要注意以下的几点:
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
overload对我们来说可能比较熟悉,可以翻译为重载,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。
   使用重载要注意以下的几点
1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), 但是不能为fun(int, int));
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
4、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。

 

override是个什么?

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
之前有人问我这个问题。 我回答: 如果你使用Visual Studio 2010,那么 NuGet 可以使你的生活更加美
之前有人问我这个问题。 我回答: 如果你使用Visual Studio 2010,那么 NuGet 可以使你的生活更加美
之前有人问我这个问题。 我回答: 如果你使用Visual Studio 2010,那么 NuGet 可以使你的生活更加美
之前有人问我这个问题。 我回答: 如果你使用Visual Studio 2010,那么 NuGet 可以使你的生活更加美
Shell的定义:   计算机分为软件和硬件,管理计算机硬件的是操作系统,也就是我们说的kernel,而
Shell的定义:   计算机分为软件和硬件,管理计算机硬件的是操作系统,也就是我们说的kernel,而
之前和最近一个项目用到了Doctrine,由于是别人搭建的,自己没有很了解,最近又开始做的时候发现拙
本文非原创,转载自:http://www.cnblogs.com/yjf512/p/3375614.html 感谢原作者分享! 之前和最近
目录索引 【 IT圈是个什么玩意儿 1 】 序文 【 IT圈是个什么玩意儿 2 】 男怕错入IT行 【 IT圈是个
说道mvvm, 这玩意出来也有些时间了, 也有很多类库, 如: avalon,knockoutjs, AugularJS等等, 当然这
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号