overload和override的区别

来源:互联网 发布:淘宝联盟怎么发布产品 编辑:程序博客网 时间:2024/06/02 17:19

overload是重载的意思,override的覆盖的意思,也就是重写,这个大家都很清楚。。

但是重载表示同一个类中可以有多个名称相同的方法,但是这些方法的参数列表各不相同

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

override可以翻译为覆盖,从字面就可以知道,它是一个方法并且对其重写,以达到不同的作用。对于我们熟悉的接口就是覆盖的应用,在接口中一般只是对方法进行了声明,而我们的实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会再子类覆盖父类中的方法,在覆盖是需要注意一下几点:

1.覆盖的方法标志必须要和被覆盖的方法的表示完全匹配;

2.返回值必须一致

3.抛出的异常一致或者是其子类

4.倍覆盖的方法不能为private

overload对我们来说可能比较熟悉,是重载的意思,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,在重载时注意以下几点:

1.重载只能通过不同的参数样。

2.不能通过返回值、异常、访问权限进行重载。

3.对于继承来说,如果某一方法在父类中的访问权限是private,那么就不能在子类对其进行重载,如果定义的话,也是重新定义了一个新的方法。


0 0
原创粉丝点击