继承关系中,如果子类的某个方法与父类的某个方法同名,并且两个同名方法的形参列表相同,则称子类方法重写父类方法(简称方法重写)。方法重写需要满足被子类重写的方法不能拥有比父类对应方法更严格的访问权限(访问权限关系 private<default<public)。
class Person{ //父类Person
public void talk(String msg){
System.out.println("父亲说:" + msg);
}
}
class Student extends Person{ //Person类的子类Student
@Override
public void talk(String msg) { //重写父类Person的成员方法talk()
System.out.println("子类说" + msg);
}
public void show(String info){ //子类的成员方法
talk(info); //调用子类本身的成员方法
//this。talk(info);
super.talk(info); //调用被子类重写的父类中成员方法talk()
}
}
public class Overriding {
public static void main(String[] args) {
Student std = new Student(); //实例化Student对象
std.talk("勤奋出真知!"); //调用Student对象的方法
std.show("王选");
}
}