弄清java中的函数重载和函数重写的区别。

对于初学者而言,java中的函数重载和还是的重写特别容易混淆,可能有的时候两个概念本身都没有弄清楚,所以在初期打基础,做习题联系的时候容易出错。下面我就谈谈自己在学习过程中的经验吧。


首先区别两者最基本的方法就是:

函数的重载一般发生在同一个类中,最直观的体现就是一个类中有多个构造函数的存在,函数名都是相同的,不同是参数的内容。

比如:

 public class Dog {
         Dog()
         {
                this.bark();
         }
         void bark()//bark()方法是重载方法
         {
         }
         void bark(String m,double l)
         {
         }
         void bark(int a,String n)//不能以返回值区分重载方法,而只能以“参数类型”和“类名”来区分
         {
         }

  }

如上述例子,记住几个要点就能判定是否为函数重载。

1.重载必定是发生在统一个类中的。

2.重载函数的“函数名”一定相同,同时函数“参数类型”“参数个数”一定是不同的。

只要满足这两个条件就可以说这两个函数时重载函数。

同时如果两个函数名称相同,参数类型相同但是参数在声明中的顺序不同也是重载的形式。即:person(int a, String b){}      person(String b, int a){}      也是函数重载的形式。



下面再来谈下函数的重写(也可以称为覆盖):

首先要明确的概念就是:所谓函数的重写,是发生继承关系中的子类和父类间的,即如果在子类中定义的某方法与其父类有相同的名称和参数,我们说该方法被重写了。

函数重写需满足几个条件:

1.在继承关系中。

2.该方法的  “返回值类型”, “参数类型和个数” , “函数名称”  这些都必须和父类中方法完全相同。

只有满足这两个条件才能判断这个属于函数的重写。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值