重载和重写的区别

方法重载和重写的区别

2008-04-16 16:10
重写是子类的方法 覆盖 父类的方法,要求方法名和参数都相同
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法
//====================================================================================

在C#中我不敢妄言。因为我是用java的,在这个方面二者相差不多,我就说说java吧。

重写一般是指父类和子类之间,子类重写了父类的一个方法,当然方法名是一样的,而且不能改变父类方法的返回值,比如说父类是返回String,子类重写了这个方法,想返回一个int,那是不行的,也得返回String。

重载是一个类里面,写了多了同名的方法,各个方法的返回值类型可以不一样。要注意区分重载方法可以通过参数列表的个数,类型和顺序。但是不推荐用顺序来进行重载,这会让代码可读性极差。

其他没啥了。面试学生的时候,有时候会问这个问题,有些学生连这都不知道,不知道大学学啥了。
重写的时候,子类的返回值类型必须是小于等于父类的返回值类型吧!!!所以是可以改变的吧,只不过有条件的改变。。。子类的修饰符大于等于父类的修饰符,子类抛出的异常小于等于父类的异常。。。
==================================================================================
根本区别:
重写(重构)很直观啊,子类覆盖了父类的同名同参同返回值的方法,用子类调用的只会是重写的方法
重载,同名而已。
==================================================================================
1、重载:
方法名相同,参数列表不同
2、重写:
也叫覆盖,指在子类中定义一个与父类中方法同名同参数列表的方法。因为子类会继承父类的方法,而重写就是将从父类继承过来的方法重新定义一次,重新填写方法中的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值