Overload和Override的区别及Overload的方法分析

Overload是重载的意思

Override是覆盖的意思

Overload表示同一个类中可以有多个名称相同的方法,但是这些方法的参数列表各不相同(参数的个数或者类型不同)。

Override表示子类中的方法可以与父类的某个方法名称和参数完全相同,通过子类创建的实例对象调用这个方法的时候,将调用子类定义的该方法,这相当于把父类中定义的那个完全相同的犯法给覆盖了,这也是面向对象编程的多态性的一中体现。子类覆盖父类的方法时,只能抛出比父类更少的异常~简称不能比父类更坏。子类方法访问的权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么子类不存在覆盖的限制,相当于子类增加了一个全新的方法。

Overide方法需要注意的几点:

1.覆盖的方法的标识必须和被覆盖的方法的标识完全一致,才能达到覆盖的效果;

2.覆盖的方法的返回值必须和被覆盖的方法的返回值一致;

3.覆盖的方法所抛出的异常必须和被覆盖的方法抛出的一致,或者是其子类;

4.倍覆盖的方法不能为private ,否则在其子类中知识定义了一个新的方法,并没有对其进行覆盖。

回到Overload,有一个关键的问题:Overload的方法时候可以改变返回值的类型?

如果两个方法的参数列表完全一样,时候可以让ta们的返回值不同来实现重载,?这是不行的!例如我们调用map.remove(key)这个方法,这个方法有返回值,但是我们通常不会用到接收的返回结果的变量,加入这个类中有两个名称相同,参数列表 完全相同的方法,仅仅是返回值类型不同,此时java无法通过返回结果类型来判断。

当然如果几个Overload的方法的参数列表不同,ta们的返回值当然可以不一样。

Overload时需要注意的几点:

1.在使用重载时只能通过不同的参数演示。如不同的参数类型,不同的参数个数,不同的参数顺序(同一个方法类的各个参数类型不能一样);

2.不能通过访问全新,返回类型,抛出的异常进行重载;

3.方法的异常类型和数目不会对重载造成影响;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值