如果调用一个方法,子类和父类都有
列如
Person p=new Student
Person是父类,有run方法
Student是子类,也有run方法
则调用p.run调用的是子类的run方法。
这就是动态绑定,此时从运行类型开始找。
因为p的运行类型是Student。
假如Student有一个特有方法study
而Person中没有,
此时不能调用子类的特有方法p.study是错的。
因为编译类型是Person类而Person中没有Student的特有方法study。
如果调用一个方法,子类和父类都有
列如
Person p=new Student
Person是父类,有run方法
Student是子类,也有run方法
则调用p.run调用的是子类的run方法。
这就是动态绑定,此时从运行类型开始找。
因为p的运行类型是Student。
假如Student有一个特有方法study
而Person中没有,
此时不能调用子类的特有方法p.study是错的。
因为编译类型是Person类而Person中没有Student的特有方法study。