【面试题-003】重载和重写的区别

在面向对象编程中,重载(Overloading)和重写(Overriding)是两个不同的概念,它们用于实现多态性:

  1. 重载(Overloading):
    • 重载发生在同一个类中,当多个方法具有相同的名字,但是有不同的参数列表(参数的数量、类型或者参数的顺序不同)时,这些方法被认为是重载的。
    • 重载方法可以根据参数的不同来执行不同的操作,它是一种静态的多态性,也称为编译时多态性。
    • 重载方法的选择是在编译时基于方法的签名(方法名和参数类型)进行的。
  2. 重写(Overriding):
    • 重写发生在继承关系中,当一个子类有一个与父类方法签名完全相同的方法时,子类的方法会覆盖(即重写)父类的方法。
    • 重写的方法必须具有相同的方法名、参数列表和返回类型(或子类型),访问权限不能比父类中被重写的方法更严格。
    • 重写是一种动态的多态性,也称为运行时多态性。当通过父类引用调用方法时,实际执行的是子类中重写的方法。
    • 重写的目的通常是为了改变父类方法的行为,以适应子类的特定需求。
      简而言之,重载是在同一个类中多个方法名称相同但参数不同的方法之间的关系,而重写是子类和父类之间方法名称和参数都相同的方法之间的关系。重载是编译时多态,而重写是运行时多态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值