Java基础.Day14

多态

面向对象三大特性之一

可以实现动态编译:程序类型的最终状态只有在执行的时候才可以确定(可扩展性)

Java基础.Day14

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

Java基础.Day14

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

Java基础.Day14

在子类写eat方法

Java基础.Day14

所以

Java基础.Day14

  • 父类有,子类有(子类重写了父类的方法)—— 调用子类的方法

  • 父类有,子类没有——调用父类的方法

    • 没有static,调用的是Student对象的方法,Student继承Person,可以调用Person类的方法

    • 对象能执行哪些方法,主要看左边,左边有就执行左边

  • 父类没有,子类有——执行不了

    主要看左边,左边没有就执行不了,因为s2是左边Person类的

Java基础.Day14

Java基础.Day14

Java基础.Day14

多态总结

Java基础.Day14

Java基础.Day14

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

Java基础.Day14

让程序变得更灵活

instanceof

Java基础.Day14

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

Java基础.Day14

这个object的数据类型是Object,但这个object属于Student类

可以先用instanceof判断是否相似,然后进行强制转换


现在写一个Person类型的

Java基础.Day14

Java基础.Day14


写个Student类型的

Java基础.Day14

Java基础.Day14

类型转换

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

Java基础.Day14

高转低

Java基础.Day14

低转高

Java基础.Day14

总结

Java基础.Day14

 来源:b站狂神

上一篇:Java-day14-常用API01


下一篇:rsyslog日志服务的配置文件分析