问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

重写和重载的三点区别

发布网友 发布时间:2022-08-26 05:31

我来回答

1个回答

热心网友 时间:2023-05-12 16:55

  重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念。但是对于新手来说也比较容易混淆。下面是我为大家准备的重写和重载的区别,希望大家喜欢!

   重写和重载的区别一:定义

  重载

  简单说,就是函数或者 方法 有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。

  重写

  重写指的是在Java的子类与父类中有两个名称、参数列表都相同的方法的情况。由于他们具有相同的方法签名,所以子类中的新方法将覆盖父类中原有的方法。

   重写和重载的区别二:相关知识

  关于重载和重写,你应该知道以下几点:

  1、重载是一个编译期概念、重写是一个运行期间概念。

  2、重载遵循所谓“编译期绑定”,即在编译时根据参数变量的类型判断应该调用哪个方法。

  3、重写遵循所谓“运行期绑定”,即在运行的时候,根据引用变量所指向的实际对象的类型来调用方法

  4、因为在编译期已经确定调用哪个方法,所以重载并不是多态。而重写是多态。重载只是一种语言特性,是一种语法规则,与多态无关,与面向对象也无关。(注:严格来说,重载是编译时多态,即静态多态。但是,Java中提到的多态,在不特别说明的情况下都指动态多态)

   重写和重载的区别三:对比

  重写的例子

  下面是一个重写的例子,看完代码之后不妨猜测一下输出结果:

  class Dog{

  public void bark(){

  System.out.println("woof ");

  }

  }

  class Hound extends Dog{

  public void sniff(){

  System.out.println("sniff ");

  }

  public void bark(){

  System.out.println("bowl");

  }

  }

  public class OverridingTest{

  public static void main(String [] args){

  Dog dog = new Hound();

  dog.bark();

  }

  }

  输出结果:

  bowl

  上面的例子中,dog对象被定义为Dog类型。在编译期,编译器会检查Dog类中是否有可访问的bark()方法,只要其中包含bark()方法,那么就可以编译通过。在运行期,Hound对象被new出来,并赋值给dog变量,这时,JVM是明确的知道dog变量指向的其实是Hound对象的引用。所以,当dog调用bark()方法的时候,就会调用Hound类中定义的bark()方法。这就是所谓的动态多态性。

  重写的条件

  参数列表必须完全与被重写方法的相同;

  返回类型必须完全与被重写方法的返回类型相同;

  访问级别的*性一定不能比被重写方法的强;

  访问级别的*性可以比被重写方法的弱;

  重写方法一定不能抛出新的检查异常或比被重写的方法声明的检查异常更广泛的检查异常

  重写的方法能够抛出更少或更有限的异常(也就是说,被重写的方法声明了异常,但重写的方法可以什么也不声明)

  不能重写被标示为final的方法;

  如果不能继承一个方法,则不能重写这个方法。

  重载的例子

  class Dog{

  public void bark(){

  System.out.println("woof ");

  }

  //overloading method

  public void bark(int num){

  for(int i=0; i

  System.out.println("woof ");

  }

  }

  上面的代码中,定义了两个bark方法,一个是没有参数的bark方法,另外一个是包含一个int类型参数的bark方法。在编译期,编译期可以根据方法签名(方法名和参数情况)情况确定哪个方法被调用。

  重载的条件

  被重载的方法必须改变参数列表;

  被重载的方法可以改变返回类型;

  被重载的方法可以改变访问修饰符;

  被重载的方法可以声明新的或更广的检查异常;

  方法能够在同一个类中或者在一个子类中被重载。

重载和重写的区别

重载和重写的区别如下:1、定义不同。重载是定义相同的方法名、参数不同,重写是子类重写父类的方法。2、范围不同。重载是在一个类中,重写是子类与父类之间的。3、多态不同。重载是编译时的多态性,重写是运行时的多态性。4、参数不同。重载的参数个数、参数类型、参数的顺序可以不同,重写父类子...

重载和重写有什么区别

三、类的关系上的区别:重写是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系。

重写和重载的区别

重写和重载的区别:定义不同、范围不同、多态不同、参数不同、修饰不同。1、定义不同 重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。重写是子类重写父类的方法,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父...

重写和重载的区别

重写和重载的区别有定义、范围、多态、返回、参数以及修饰不同。1、定义不同:重载是定义相同的方法名,参数不同,重写是子类重写父类的方法。2、范围不同:重载是在一个类中,重写是子类与父类之间的。3、多态不同:重载是编译时的多态性,重写是运行时的多态性。4、返回不同:重载对返回类型没有...

重写和重载的区别是什么?

1、概念不同 重写:重写也就是我们通常所说的覆盖,重写是指在派生类当中,重新对基类中的虚函数度重新实现。重载:重载指的是不用的函数使用相同的函数名字,可是,函数的参数、个数或者是类型都不同。2、规则不同 重载:重载可以有不同的访问修饰符。重载能够抛出不同的异常。重载一定要有不同的...

重写和重载的三点区别

4、因为在编译期已经确定调用哪个方法,所以重载并不是多态。而重写是多态。重载只是一种语言特性,是一种语法规则,与多态无关,与面向对象也无关。(注:严格来说,重载是编译时多态,即静态多态。但是,Java中提到的多态,在不特别说明的情况下都指动态多态)重写和重载的区别三:对比 重写的例子 下面...

重写和重载的区别

这两个词语的区别在于定义、范围、规则。1、定义:重载是定义相同的方法名,参数不同;重写是子类重写父类的方法。2、范围:重载是在一个类中,是编译时的多态性;重写是子类与父类之间的,是运行时的多态性。3、规则:重载对返回类型没有要求,参数个数、参数类型、参数顺序可以不同,访问修饰符没...

重载和重写的异同

1.重写必须继承,重载不用。2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常

java重写和重载的区别总结

1、区别:重载是指在同一个类中,方法名相同但参数列表不同的情况。重载的方法可以有相同的返回类型,也可以有不同的返回类型。每个重载的方法必须有独一无二的参数类型。重载方法的区分依据是根据方法的参数列表来决定。重写是指子类拥有一个与父类相同名称、相同参数列表的方法,在子类中重新实现该...

重载和重写的区别

重载和重写的区别:定义、发生的位置、参数列表、返回类型、访问修饰符。1、定义:重载是指在同一个类中使用相同的方法名,但参数列表不同,以实现不同的功能;而重写是指在子类中通过继承父类的方法,并对其进行修改或重新实现。2、发生的位置:重载发生在同一个类中,而重写发生在子类中。3、参数...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
南京线下哪里有卖NIKEJORDAN的鞋子? ...青青翠竹,全身是宝。竹竿既是建筑的材料,又是造纸的原 为有暗香来翠竹变坏了吗 为有暗香来翠竹黑化了吗 苹果手机充电口坏了修要多少钱? 苹果手机充电口坏了多少钱? 如何去除衣服上的钢笔水 钢笔水弄衣服上怎么洗 四川峨眉山特产:碧潭飘雪 碧潭飘雪泡多久好喝 碧潭飘雪是什么茶,碧潭飘雪是红茶还是绿茶 长焦相机为什么夜间用闪光灯画面会有小白点? 什么叫做不可同日而语 如何申请第二个 想重新申请一个新的微信帐号如何操作 怎样申请 怎么申请新的 申请新的的方法 怎样注册新 我想申请一个怎么申请的 谁有影喋圣经(一)pdf电子书百度云网盘资源 注册一个新的怎么注册 《世界管理学圣经》pdf下载在线阅读全文,求百度网盘云资源 怎么注册新的 申请一个新的微信帐号如何操作 沮丧的近义词是什么 沮丧的近义词 500万的绿化工程能赚多少 3000万修路工程赚多少 有什么好看的中国鬼片,而且里面有激情片段的 慢性胃炎的饮食与禁忌 历史小论文题解题方法 历史事件选择题答题技巧 拼搏的名言名句大全 造句g睡觉……感冒…… 城乡养老保险交15年,退休能拿到多少钱? 路今干辟加偏旁是什么字 能字加偏旁,息字加偏旁,路加偏旁 人,球,信,路加一个字组词 怎么注册新的 申请一个新的微信帐号如何操作 注册一个新的怎么注册 我想申请一个怎么申请的 怎样注册新 怎么申请新的 申请新的的方法 怎样申请 如何申请第二个 想重新申请一个新的微信帐号如何操作 怎样才能让腾讯QQ面板的连接默认不是由IE浏览器打开,用世界之窗呢? 怎样设置进QQ空间不用ie打开 怎么样才能设置QQ打开指定的浏览器,而不是打开IE ? 怎么打开QQ空间的时候不默认用IE浏览器打开? 如何不用IE和TT打开QQ空间? 怎样不用IE登陆QQ空间 怎么把图片格式的转换成PDF格式? ...怎么没有上传图片和插入图片的点选呢,有个图片点选,一点就和问题补... ...都不知道怎么下,我复制视频地址然后用迅雷下载,都不行,下下来不知...
  • 焦点

最新推荐

猜你喜欢

热门推荐