重载和重写有什么区别?有什么相似之处?

 我来答
巴黎还没有去过
2021-12-29 · TA获得超过566个赞
知道答主
回答量:47
采纳率:88%
帮助的人:8036
展开全部

Java中的过载由静态类型决定,在类被加载时决定,属于静态分发; 改写由动态类型决定,在运行时决定,是动态分配。 动态分配通过虚拟方法表实现,虚拟方法表中存在各方法的实际入口地址。 如果父类中的某个方法的子类没有被改写,则父类和子类的方法表中的方法地址相同,如果被改写,则子类的方法表的地址是指改写后的地址; 典型的重写方法与子类继承父类、重写父类的方法,在动态绑定中实现相同的方法名称,但由于参数类型或数量不同,因此过载在一个类中如果子类中的方法与父类中的方法具有相同的方法名称、返回值类型和参数表,新方法将复盖原始方法。

 要使用父类的原始方法,请使用引用当前类的父类的super关键字。 子类函数的访问限定权限必须大于或等于父类。 重写Override后,子类中的方法可以与父类中的某个方法具有完全相同的名称和参数。 在子类中创建的实例对象调用此方法时,将调用子类中的定义方法。 这相当于涵盖与父类中定义的方法完全相同的方法,这也是面向对象编程多样性的表现形式。 子类涵盖父类的方法时,只有比父类少的异常或抛出父类引发的异常的子异常。 

子类可以解决父类的一些问题,所以不能比父类解决更多的问题。 子类的方法的访问权限不能大于或小于父类。 如果父类的方法为private类型,则子类没有复盖限制,而是向子类添加了新方法。 子类可以定义新的特征,如果子类需要修改父类的一些方法来扩展,从而增强功能,程序员经常把这种操作方法称为重写,也称为间谍写或覆盖。 改写显示了Java的优越性,改写基于继承关系,使语言结构更加丰富。 在Java继承中,子类可以通过隐藏父类的方法来访问,也可以继承父类的方法。 

宏盛宏盛99
活跃答主

2021-12-29 · 万物皆可问,万物皆可答
知道小有建树答主
回答量:0
采纳率:95%
帮助的人:0
展开全部
区别就是,整个的过程不一样,进行的时间不一样,刷新的频率不一样,刷新的方式不一样。相似的地方就是,都是对数据进行了重载,对数据进行了更新,对数据进行二次覆盖,对数据进行二次处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山西宏盛星辰
活跃答主

2021-12-29 · 万物皆可问,万物皆可答
知道大有可为答主
回答量:26.4万
采纳率:100%
帮助的人:2199万
展开全部
这是两种完全不同的概念,重载代表的是两种不同的函数,但是使用的是一样的函数名,然后重写指的是派生类型中对虚函数进行重新定义,实现体不一样。都是对函数进行的多种状态。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西红学姐
活跃答主

2021-12-29 · 万物皆可问,万物皆可答
知道答主
回答量:0
采纳率:96%
帮助的人:0
展开全部
重载是指不一样的函数使用同样的函数名。重写是指重新对基类中的虚函数重新设立。区别是参数列表不同,访问修饰符不同。相同之处就是对数据进行更新和二次覆盖。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式