多态向上转型与向下转型

向上转型中:父类的引用指向子类对象。
=左边为编译类型,右边为运行类型。
方法动态绑定首先找运行类型中的方法,没有则找主类中的方法。
因此p.run找Student类中的方法,p.eat在Student类中没有找到对应的方法,去父类接着找。
因为编译类型是Person,因此p.study会报错。
向下转型:把指向子类对象的父类引用,转成指向子类对象的子类引用。
解释:
1.Person p = new Student(); 其中p就是指向子类对象的父类引用,
2.Student s = (Student)p 其中等号右边指向子类对象,左边转成s的子类引用。
其中s调用的方法先从Studenrt类找,没有就去父类找。
多态向上转型与向下转型
https://blog.883051.xyz/archives/duo-tai-xiang-shang-zhuan-xing-yu-xiang-xia-zhuan-xing