方法重写与方法重载

原创 2013年12月02日 21:35:47

1、方法重写(overiding method)

       1.1在面向对象编程中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。 如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。

       1.2方法重写的特性

关于方法重写的一些特性:
1.发生方法重写的两个方法返回值、方法名、参数列表必须完全一致(子类重写父类的方法)
2.子类抛出的异常不能超过父类相应方法抛出的异常(子类异常不能大于父类异常)
3.子类方法的访问级别不能低于父类相应方法的访问级别(子类访问级别不能低于父类访问级别)
根据2,3条是不是能确定第一条,子类方法的返回值必须是父类方法返回值的子类。
2、方法重载(overloading method)
        2.1方法重载是让类以统一的方式处理不同类型数据的一种手段。方法重载,其实就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。简单的说,方法重载就是方法名称重复,加载参数不同。

 

        2.2方法重载具体规范

1.方法名一定要相同。
2.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
1)如果参数个数不同,就不管它的参数类型了!
2)如果参数个数相同,那么参数的类型或者参数的顺序必须不同。
3.方法的返回类型、修饰符可以相同,也可不同。

 

 

方法重写与方法重载的区别

方法重写(override):即方法覆盖。指的是父子类中方法的关系。父类A中有方法method1,在子类中想要使用method1这个方法签名而又要实现与父类method1方法不同的功能,这个时候就要用...
  • u010921701
  • u010921701
  • 2016年10月31日 17:15
  • 1300

方法重写、重载、以及它们的区别

一,方法    是一段用来完成特定功能的代码片段。方法在其他语言中也叫函数。    在方法里面定义局部变量不能有修饰符,final除外    语法    [修饰符]+[修饰符]+返回值类型+方...
  • a765717
  • a765717
  • 2016年02月23日 14:10
  • 3601

PHP面向对象之重写与重载

  • binghui1990
  • binghui1990
  • 2013年06月16日 11:38
  • 10388

JAVA中的方法重写与方法重载区别

  • 2011年07月13日 17:32
  • 141KB
  • 下载

Java方法分派-重写与重载区别

说明:这两天遇到的一些Java方法分派的问题,结合自己书上看的,google的,还有撒迦教我的,做一个总结吧.望指正.   写道 方法分派指的是虚拟机如何确定应该执行哪个方法!   很多的内...
  • csujiangyu
  • csujiangyu
  • 2015年03月22日 17:39
  • 398

【翻译】Java方法的重载与重写规则

【翻译】Java方法的重载与重写规则        原文地址:Java Method Overloading and Overring Rules一、方法重载规则1、Java中重载方法第一个重要的规则...
  • wumeng_seu
  • wumeng_seu
  • 2016年08月03日 16:56
  • 563

JAVA方法的重写与重载的原则

请看这道题: QUESTION NO: 10 Click the Exhibit button. Which statement is true about theclasses and interf...
  • magic_wz
  • magic_wz
  • 2013年11月15日 11:46
  • 2403

java方法的重载(Overload)与重写(Override)

java 支持方法重载,这种机制为类似功能的方法提供了统一的名称,但可根据参数行的不同而自动调用对应的方法。 一个例子可以从String 类上提供的一些方法看到,像String的valueOf()方...
  • itmyhome
  • itmyhome
  • 2012年02月05日 16:25
  • 1851

java重载与重写的区别+重写父类equals方法的完美实现

【0】README0.1) 本文章节【1】和【2】的内容转自 http://www.cnblogs.com/bluestorm/archive/2012/03/01/2376236.html ; ...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2015年11月09日 22:53
  • 1291

C#方法重载(overload)、重写(覆盖)(override)、隐藏(new) -第四天

关于这个定义,个人认为还是比较正确的,实际上有的人把 new 的隐藏称为覆盖,这个可能是使用者的角度来说的。但是目前作者还是偏向于 这样的称呼:C#方法重载(overload)、重写(覆盖)(over...
  • lichuanpeng
  • lichuanpeng
  • 2017年05月28日 15:45
  • 276
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:方法重写与方法重载
举报原因:
原因补充:

(最多只允许输入30个字)