Override与Overload的区别

 Override:

       ① 用于子类覆盖父类的方法,一般在子类中标注。

       ② 子类中此方法必须与父类中此方法完全相同,相同的参数列表,相同的返回类型,抛出的异常完全相同。

       ③ 方法被定义为final 不能被覆盖。

       ④ 方法的权限为private 不能覆盖重写。

Overload:

       ① 在重载时,只能通过不同的参数样式进行重载(不同的参数类型,参数个数,参数顺序)。

       ② 不能通过返回类型,抛出异常的类型,访问权限来重载

       ③ 方法异常的数目和类型不能作为重载的依据。

       ④ 重载是发生在同一个类中,不同方法之间。

其具体实现机制: 

  
override重写,重写是一种动态绑定的多态机制。即在父类和子类中同名元素(如成员函数)有不同 的实现代码。执行的是哪个代码是根据运行时实际情况而定的。 

overload重载,重载是一种参数多态机制,即代码通过参数的类型或个数不同而实现的多态机制。 是一种静态的绑定机制(在编译时已经知道具体执行的是哪个代码段)。

package OverrideOverloadTest;

class A{
	public int getVal(){
		return (5);
	}
}
class B extends A{
	public int getVal(){
		return (10);
	}
}
class C extends A{
	public int getVal(int val){
		return val;
	}
}

public class override {
	public static void main(String[] args){
		B b = new B();
		A a1 = (A)b;
		C c = new C();
		A a2 = (A)c;
		System.out.println(a1.getVal());
		System.out.println(b.getVal());
		System.out.println(a2.getVal());
		System.out.println(c.getVal());
		System.out.println(c.getVal(6));
	}
}

结果:10,10 ,5, 5, 6, 6.6

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值