重写Override+重载Overload的区别

一、重写Override:
  重写是针对方法而言,发生在父类与子类之间。子类继承父类后,子类要改变父类已经有的行为,就可以采用重写的方式。和父类定义同名方法,参数个数、参数类型一致。这样调用这个方法时,根据就近原则,默认就调用新覆盖的方法,从而达到改写目的。
  
 1、方法名相同,参数个数、参数类型相同;
 2、子类方法的访问权限应比父类方法的访问范围更大或相等;
  (public>protected>default>private)
 3、子类方法返回值类型应比父类方法返回值类型更小或相等;
 4、子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等。

--例子:
public class FuLei {
	public static void main(String[] args) {
		ZiLei z = new ZiLei();
		z.print();
	}

	public void print(){
		System.out.println("父类");
	}
}

class ZiLei extends FuLei {
	@Override
	public void print() {
		System.out.println("子类" ); //子类会覆盖父类中的方法
	}
}

--结果:
子类

二、重载Overload:
 1、在同一个类中方法名相同;
 2、参数个数不同;
 3、参数的个数相同,但类型不同;
 4、返回类型可以不同、访问修饰符可以不同、抛出的异常可以不同。

--例子:
public class OverLoad{
	public static void main(String[] args) {
		OverLoad o = new OverLoad();
		o.print();
		o.print("ZY~");
	}

	public void print(){
		System.out.println("Hello");
	}

	public void print(String name){
		System.out.println("Hello "+name);
	}
}

--结果:
Hello
Hello ZY~

三、总结:

比较重载重写
相同点 方法名都可以用于抽象方法和非抽象方法
方法类型都可以用于抽象方法和非抽象方法
不同点参数列表参数列表必须不一致参数列表必须一致
返回值类型返回值类型不做限制返回值类型必须一致
范围重载同一个类中的方法在继承中,子类重写父类的方法
次数方法的重载可以被重载多次,也可以用多个重载方法父类的方法只能被重写一次,重写一般是两个方法之间
权限对权限没有要求被重写的方法不能拥有更严格的权限
调用根据传递的参数来决定调用哪个方法根据调用方法的对象来决定调用哪个方法

面试题:
重写和重载的区别?
(答案见文末)

面试题答案:
见上文?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值