重载与重写的区别,其中参数顺序是否影响重载

其实重写也叫做覆盖,与重载的区别到处都搜得到,这里简单带过

重载和重写的区别如下:

1.定义不同---重载是定义相同的方法名,参数不同;重写是子类重写父类的方法。

2.范围不同---重载是在一个类中,重写是子类与父类之间的。

3.多态不同---重载是编译时的多态性,重写是运行时的多态性。

4.返回不同---重载对返回类型没有要求,而重写要求返回类型,有兼容的返回类型。

5.参数不同---重载的参数个数、参数类型、参数顺序可以不同,而重写父子方法参数必须相同。

6.修饰不同---重载对访问修饰没有特殊要求,重写访问修饰符的限制一定要大于被重写方法的访问修饰符。

其实今天主要是看重载参数的顺序是否影响,先看参数类型不同其顺序的影响

    public void f2(int a, double b) {
		    // Method implementation
		}
		 
	public void f2(double b, int a) {
	    // Method implementation
	}

​

其编译并不会出现错误。但是重点来了,若是,参数类型一样,改变其顺序呢?

     public void f1(int x,int y,int z) {
		 
	 }
	 public void f1(int z,int y,int x) {
		 
	 }

结果是:

 编译错误,不能实现重载,所有,参数的类型,个数,顺序,的确能实现重载,但是还是以情况而定。

还有一个是int返回值,一个是void是否实现重载呢?

     public int f1(int x,int y,float z) {
		 return 0;
	 }
	 public void f1(int x,int y,int z) {
		 
	 }

答案是可以的。

以上便是本文章全部内容,也是有一次面试笔试题碰到了,突然想起就手动编写了一下,想起来应该是自己上课没听讲,忘记了这个细节。

区别内容参考:重载和重写的区别是什么?-本地惠生活 (baidu.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值