方法的重写:
也叫方法的覆写;其就是在子类覆写一个与父类名字一样且参数列表相同的方法。以及返回值与修饰符也需要遵循以下规则。
方法重写遵循规则:两同、两小、一大
两同: 方法名相同、参数列表相同
两小:被覆写的方法在子类中的返回值的引用类型的范围比父类小或者与父类相同。返回值类型只能与父类的返回值类型一致或是父类返回值类型的子类(子类的子类等)。
被覆盖的方法在子类中抛出的异常范围比父类小或者与父类相同(异常后续会讲)
一大:被覆盖的方法在子类中访问控制权限范围要比父类的大或者等同。(除了private,private的属性和方法不能被继承,所以也不能被覆盖)
父类:
public class Test {
//父类的自我介绍方法
public void introduce(){
System.out.println("父类的自我介绍方法");
}
public static void main(String[] args) {
}
}
子类:
public class Son extends Father{
//子类的自我介绍方法
public void introduce(){
System.out.println("子类的自我介绍方法");
}
public static void main(String[] args) {
}
}
子类重写了父类的自我介绍方法
方法重载:
在一个类中方法名称相同称为重载。
构成重载的几个条件有以下几种:
1、参数类型不同
2、参数个数不同
3、参数顺序不同
方法重载的好处是什么?
一个方法名,实现多个功能。
示例代码:
public class Test {
private String name;//姓名
public Person() {//构造方法1
}
public Person(String name, int age, String sex) {//构造方法2
this.name = name;
this.age = age;
this.sex = sex;
}
//构造方法1和构造方法2,方法名相同但参数个数不一致所以构成重载
public static void main(String[] args) {
}
}
总结:方法的重写(overriding)和方法的重载(overloading)的区别
方法的重载只能在本类,但是方法的重写在子父类之间
方法的重写的好处?
是对父类方法功能的完善,方法名称必须一致,参数列表相同
父类不能调用子类的任何方法,因为父类对子类是无法预知的