重写(override):
相关定义: 1.必须是子类继承父类,然后创建一个和父类相同的方法 2.这里的相同是指,函数名相同,参数列表相同,包括参数列表的类型和顺序以及数量 3.子类重写的方法相比父类中的方法, ①在访问权限上必须大于等于父类(里氏替换原则:在父类能使用的地方,子类能够代替父类) ②在抛出异常方面,抛出异常必须小于等于父类 ③在返回值类型方面,必须小于等于父类 4.如果子类中的方法访问权限为private,那就不是重写
举例:
父类:
public class Father {
public void info(String name
,String age
){
System
.out
.println("my name is"+name
+"and i'm "+age
+"old");
}
}
子类:
public class Son extends Father {
@Override
public void info(String name
, String age
) {
System
.out
.println("这就是重写");
}
}
重载(overload):
相关定义: 1.必须是在同一个类中 2.方法的重载和返回值类型以及访问修饰无关,只和参数列表有关 3.传入参数的类型不同或者数量不同或者顺序不同都算方法的重载
举例:
同一个类中:
public class Father {
public void info(String name
,String age
){
System
.out
.println("my name is"+name
+"and i'm "+age
+"old");
}
public void info(String name
, String age
,String sonname
){
System
.out
.println("这是方法的重载");
}
}
在一个子类中
public class Father {
public void info(String name
,String age
){
System
.out
.println("my name is"+name
+"and i'm "+age
+"old");
}
}
=================================
=================================
public class Son extends Father {
public void info(String name
, int age
) {
System
.out
.println("这也是重载");
}
}
关于重载:
重载根本与是否继承无关,重载只针对一个类而言。一个类中有多个同名方法,不管这些方法是这类原生的,还是继承而来,只要可见可访问,其参数列表不同,都称为重载。