黑马程序员技术交流社区
标题: Java中Overload和Override的区别 [打印本页]
作者: 宋武帝 时间: 2018-12-14 22:42
标题: Java中Overload和Override的区别
在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()方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |