重载(overLoad)与重写(override)的区别与详解(详解+对比+代码示例)

1.1 方法重写和重载的区别

🚀请看表格对比

名称发生范围方法名形参列表返回类型修饰符
重载(overload)本类必须一样类型、个数、顺序至少有一个不同无要求无要求
重写(override)父子类必须一样相同子类重写的方法,返回类型和父类一样或者是父类的子类子类方法不能缩小父类方法的访问范围

🚀🚀🚀如果你基础比较好,面向对象思想掌握的比较扎实,那你应该已经看懂了吧;
🚀🚀🚀如果还有疑问,请看下面更加详细的知识点和代码示例吧。

✈️✈️✈️

2.1 方法重载(OverLoad)

相同的方法名字,参数列表不同,调用也就不同
例如(以下四个方法均构成重载):

//1号方法
public sum (int a,int b){
	return a + b;
}
//2号方法
public sum (int a,int b,int c){
	return a + b + c;
}
//3号方法
public sum (int a,int c,int b,){
	return a + b + c;
}
//4号方法
public sum (int a,double c,int b,){
	return a + b + c;
}
2.1.1方法重载使用细节:
  1. 方法名:必须相同。
  2. 形参列表:必须不同(形参类型&&个数&&顺序,至少有一样不同,参数名无要求)。
  3. 返回值无要求。(3号方法返回值类型为int;4号方法返回值为double)
  4. 在调用sum()方法时,根据参数列表来自己匹配合适的方法。

✈️✈️✈️

2.2 方法重写/覆盖(override)

发生在继承中,子类有一个方法,和父类的某个方法名称、返回类型、参数一样,即子类方法重写了父类方法

2.2.1方法重写使用细节:
  1. 子类的方法的参数、方法名称要和父类完全一样
  2. 子类的方法返回类型和父类一样或者是父类返回类型的子类(例如:父类为Object子类为String)
  3. 子类方法不能缩小父类方法的访问权限。
//Dog父类
class Dog{
public feed(){
	 System.out.print("喜欢吃骨头");
}
//Teddy(泰迪)子类
}
class Teddy extends Dog{
public feed(){
	 System.out.print("喜欢吃面条");
}
}

主类中实例化一个泰迪

Teddy wangwang = new Teddy;
wangwang.feed();//

以上有两个feed方法,因为子类Teddy类中的feed()重写了父类Dog中的feed(),所以这里输出的就是“喜欢吃面条”。
以上就是重载与重写的区别与详细描述了!

🚗🚗🚗肯定有人问:我的泰迪有时候喜欢吃面条,也有时候吃骨头,那我能不能让Teddy(泰迪)类也调用父类中的feed()方法呢?
🚄🚄🚄敬请期待下节的多态中的向上转型与向下转型

  • 46
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 48
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写代码两年半

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值