在Java中Overload 和Override的区别? 1、什么是Overload? 方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。 方法重载的三种体现: (1)参数的个数不同 (2)参数数据类型不同 (3)多类型参数顺序不同。 重载方法调用:JVM通过方法的参数列表,调用不同的方法。 2、什么是Override? 如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。 方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。 注意事项 : 1. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。 2. 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样。 3、两者的区别 (1)方法重写在子类中,出现和父类一模一样的方法声明的现象,方法重载在同一个类中,出现的方法名称相同,参数列表不同的现象(个数不同或数据类型不同或顺序不同) (2)方法重载能改变返回值类型,因为它和返回值类型无关。 举例: 1、 Overload 定义两个方法,两个int类型数和两个double类型的数都做加法运算 public void add(int i,int y){ System.out.println(“两个整数的和为”+i+y); } public void add(double i,double y){ System.out.println(“两个浮点型的数的和为”+i+y); } 这两个方法就成为方法重载 2、 Override //父类 public class Fu{ public void show(){ System.out.println(“这是父类的方法”); } } //子类 public class Zi{ public void show(){ System.out.println(“这是子类的方法”); } }//子类的show()方法就是重写了父类的show()方法
|