多态
面向对象三大特性之一
可以实现动态编译:程序类型的最终状态只有在执行的时候才可以确定(可扩展性)

没有static,调用Student()对象的方法,Student继承Person,可以调用Person的方法

在子类里面重写父类的方法

在子类写eat方法

所以

-
父类有,子类有(子类重写了父类的方法)—— 调用子类的方法
-
父类有,子类没有——调用父类的方法
-
没有static,调用的是Student对象的方法,Student继承Person,可以调用Person类的方法
-
对象能执行哪些方法,主要看左边,左边有就执行左边
-
-
父类没有,子类有——执行不了
主要看左边,左边没有就执行不了,因为s2是左边Person类的



多态总结


同样是run,s1跟s2可能调用出不一样的结果

让程序变得更灵活
instanceof

可以判断两个类之间是否存在父子关系

这个object的数据类型是Object,但这个object属于Student类
可以先用instanceof判断是否相似,然后进行强制转换
现在写一个Person类型的


写个Student类型的


类型转换
父类无法调用子类独有的方法(回看前面)

高转低

低转高

总结

来源:b站狂神
浙公网安备 33010602011771号