重载与重写的区别

1、重载

若是同一个类中包含了两个或两个以上方法名相同、但有有不一样的参数列表,则称为方法的重载,也可称该方法被重载了。java

重载能够理解为一个类中的多态spa

说明:继承

1.参数列表不一样包括:个数不一样、顺序不一样、类型不一样
2.仅仅参数变量名称不一样是不能够的。
3.跟成员方法同样,构造方法也能够重载。
4.声明为final的方法不能被重载。
5.声明为static的方法不能被重载,可是可以被在此声明。io


方法的重载的规则
1.方法名称必须相同。
2.参数列表必须不一样。
3.方法的返回类型能够相同也能够不相同。
4.仅仅返回类型不一样不足以称为方法的重载变量

2、重写

1.方法的重写: 子类出现了与父类相同方法名称、参数列表和返回类型的方法,这个咱们就称做为方法的重写。权限

2.方法重写的前提: 必需要存在继承的关系。引用

3.什么是时候要使用方法的重写:父类的功能没法知足子类的需求时。方法

方法重写要注意的事项异常

1.方法重写时, 方法名与形参列表必须一致。 
2.方法重写时,子类的权限修饰符必需要大于或者等于父类的权限修饰符。 
3.方法重写时,子类的返回值类型必需要小于或者 等于父类的返回值类型。 
4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。 Exception(最坏) static

当方法重写时须要父类中原有的方法,可以使用super关键字,该关键字引用当前类的父类。

3、重载与重写的区别

       重写(Overriding)和重载(Overloading)是Java多态性的不一样表现

       通常重写针对子类继承父类,重写父类的方法,经过动态绑定;而重载是同一方法名,参数列表不一样,重载能够理解为一个类中的多态。

       在java中重载是由静态类型肯定的,在类加载时就能够取肯定,属于静态分派;而重写是由动态类型肯定的,是在运行时肯定的,属于动态分派。动态分派是由虚方法实现的,虚方法表中存在着各个方法的实际入口地址,若父类中的某个子方法没有被重写,则父类与子类的方法表中的方法地址相同;若重写了,则子方法表的地址指向重写后的地址。

 

重写与重载之间的区别

方法重载: 
一、同一个类中 
二、方法名相同,参数列表不一样(参数顺序、个数、类型) 
三、方法返回值、访问修饰符任意 
四、与方法的参数名无关

方法重写:  一、有继承关系的子类中  二、方法名相同,参数列表相同(参数顺序、个数、类型),方法返回值相同  三、访问修饰符,访问范围须要大于等于父类的访问范围  四、与方法的参数名无关  

相关文章
相关标签/搜索