1. 程式人生 > >子類繼承父類,重寫父類方法,運用多型時呼叫重寫的方法時呼叫子類的還是呼叫父類的?

子類繼承父類,重寫父類方法,運用多型時呼叫重寫的方法時呼叫子類的還是呼叫父類的?

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

派生類  擴充套件       基類------------->>國外的叫法

子類      繼承       父類              -->>國內的叫法