子类继承父类,重写父类方法,运用多态时调用重写的方法时调用子类的还是调用父类的?

时间:2022-07-18 21:56:49
package 第五天;

public class Person {

public void say()
{
System.out.println("我是Person的say方法");
}
}

子类Student如下:

package 第五天;

public class Student extends Person{
//重写了父类的say()方法
@Override
public void say()
{
System.out.println("我是Student的say方法");
}
public static void main(String[] args) {
Student stu=new Student();
stu.say();//我是Student的say方法
Person p=new Student();//多态
p.say();//我是Student的say方法
}

}
上面的p.say(),可以理解为如果子类由say()方法就调用子类的,如果子类没有say()方法,那么就再去调用父类的say()方法.

继承的目的是为了扩展(意思是父类的功能不强大,我们可以来扩展父类),也从而实现了代码的复用。

                                                                             Student extends Person

派生类  扩展       基类------------->>国外的叫法

子类      继承       父类              -->>国内的叫法