【JAVA】重载和重写的区别




重写(Overriding)

重写规则

  1. 参数列表:必须与被重写方法的参数列表完全匹配。 
  2. 返回类型:必须与超类中被重写的方法中声明的返回类型或子类型完全相同 
  3. 访问级别:一定不能比被重写方法强,可以比被重写方法的弱。 
  4. 非检查异常:重写方法可以抛出任何非检查的异常,无论被重写方法是否声明了该异常。 
  5. 检查异常:重写方法一定不能抛出新的检查异常,或比被重写方法声明的检查异常更广的检查异常 
  6. 不能重写标志为final,static的方法

其中:

  1. 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。

  2. 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。

  3. 子类函数的访问修饰权限不能少于父类的; 



重载(Overloading) 

重载方法的规则: 
  1. 参数列表:被重载的方法必须改变参数列表。 
  2. 返回类型:可以改变返回类型。 
  3. 修饰符:可以改变修饰符 
  4. 异常:可以声明新的或者更广泛的异常。

其中:

  1. 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。

  2. Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。

  3. 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。



 总结:

重载和重写(覆盖)。

  方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。

子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了,而且如果子类的方法名和参数类型和个数都和父类相同,那么子类的返回值类型必须和父类的相同;如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。也就是说,重载的返回值类型可以相同也可以不同。

时间: 2024-09-30 17:21:06

【JAVA】重载和重写的区别的相关文章

java重载和重写的区别

一.重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同.无法以

Java重载与重写的区别

重载Overloading与重写Overriding是一个类中多态性的两种表现. (1)Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 方法重载是让类以统一的方式处理不同类型数据的一种手段. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (2) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同.无法以返回型别作为重载函数的区分标准. 下面是重载的例子:    pack

JAVA --- 重载和重写的区别

重写(Overriding) 是发生在父类和子类,接口 和 子类 之间的: 参数类型.返回类型 必须完全相同,访问级别 子类 比 父类 方法要强. 重写方法可以抛出任何非检查的异常,无论贝重写方法是否声明了该异常. 检查异常:重写方法一定不能抛出新的检查异常,或比被重写方法声明的检查异常更广的检查异常. 不能重写标为 final,static 的方法: 重载(Overloading) 参数列表:被重载的方法必须改变参数列表 返回类型:可以改变返回类型 修饰符:可以改变修饰符 异常:可以声明新的后

java基础疑难点总结之成员变量的继承,方法重载与重写的区别,多态与动态绑定

1.成员变量的继承 1.1要点 子类用extends关键字继承父类.子类中可以提供新的方法覆盖父类中的方法.子类中的方法不能直接访问父类中的私有域,子类可以用super关键字调用父类中的方法.在子类中可以增加域,增加方法或者覆盖超类的方法,然而绝对不能删除继承的任何域和方法. 在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象.所以所谓的继承使子类拥有父类所有的属性和方法其实可以这样理解,子类对象确实拥有父类对象中所有的属性

Java的重载和重写的区别

今天做题一脸蒙:原以为理解的挺深的,看来不仅要学会,换药灵活运用.以下是搜集整理的重载和重写的区别: 1.首先是书写:重载英文为overload  ,重写为 override . 2.然后是定义: (1)重载的定义是:方法名相同,参数类型不同或参数个数不同或参数顺序不同,就可以构成重载.这里注意没有规定方法返回值和修饰符,防止陷阱奥. (2)重写(又叫覆盖或复写):方法名相同,返回值类型相同,参数列表相同.  这里注意没有规定修饰符奥. 3.权限:   重载对权限没有要求: 重写的权限是:被子类

重载和重写的区别(详细)

ava中重载与重写的区别 首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,

重载和重写的区别

java中重载与重写的区别 首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样

Java——重载和重写

前言 在程序设计中经常会遇到对对方法的重载或者重写,下面将介绍重载和重写. 重载(Overloade) 重载出现的原因 任何程序设计语言都具备的一项重要特性就是对名字的运用.当创建一个对象时,就给对象的存储空间取了一个名字.方法名就是给某个动作取的名字.通过使用名字,我们可以引用所有对象和方法.名字起的好可以使程序更易于理解和修改. 在大多数程序设计语言中要求为每个方法提供唯一的标识符.不能使用print()的函数显示了整数之后,又用一个名为print()的函数显示浮点数.即,每个函数(方法)都

【面试题】方法的重载与重写的区别?

方法的重写(override orverwrite) vs 重载(overload) [面试题]方法的重载与重写的区别? 重载:"两同一不同":同一个类,同一个方法名,不同的参数列表. 注:方法的重载与方法的返回值无关! >构造器是可以重载的 重写:(前提:在继承的基础之上,子类在获取了父类的结构以后,可以对父类中同名的方法进行"重构") 方法的返回值,方法名,形参列表形同:权限修饰符不小于父类的同名方法:子类方法的异常类型不大于父类的: 两个方法要同为sta