清楚了继承的基本概念,此事就可能出现一种情况,如果子类定义了父类相同的方法或属性,这就称为覆写。
方法的覆写
方法的覆写是子类定义了与父类方法名称、参数类型及个数完全相同的方法,但是被覆写的方法不能够拥有比父类更为严格的访问权限控制。
范例:简单的方法覆写
public class Demo1 {
public static void main(String[] args) {
Student student =new Student();
student.printInfo();
}
}
class Person{
public void printInfo() {
System.out.println("【Person类】printInfo()方法");
}
}
class Student extends Person{
public void printInfo() {
System.out.println("【Student类】printInfo()方法");
}
}
进行覆写方法使用的时候得注意两点:
- 当前使用的对象是通过那个类
new
出来的? - 当调用某一方法,如果该方法已经被子类覆写了,则调用的一定是子类中覆写的方法。
在进行方法的覆写的时候也有一个明确的要求:被覆写的方法不能够拥有比父类更为严格的访问控制权限,private
>default
>public
。
那么也意味着如果父类方法使用了public
进行定义,那么子类中使用的权限只能是public
,而如果分类中使用的是default
权限,子类可以使用default
或者public
。方法一般也是public