Java教程

Java基础.Day14

本文主要是介绍Java基础.Day14,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

多态

面向对象三大特性之一

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

image-20210716094434206

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

image-20210716103256513

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

image-20210716105346764

在子类写eat方法

image-20210716105256590

所以

image-20210716105601183

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

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

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

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

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

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

image-20210716110931923

image-20210716110946583

image-20210716111219132

多态总结

image-20210716111949926

image-20210716112018101

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

image-20210716112105595

让程序变得更灵活

instanceof

image-20210716164236939

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

image-20210716165413483

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

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


现在写一个Person类型的

image-20210716170258131

image-20210716170322897


写个Student类型的

image-20210716170613423

image-20210716171628545

类型转换

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

image-20210716172438450

高转低

image-20210716173209443

低转高

image-20210716173623933

总结

image-20210716174510056

 来源:b站狂神

这篇关于Java基础.Day14的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!