Java多态
一种事物往往存在多种形态,多态是同一行为有不同的表现形式,也就是说相同的事物,调用其相同的方法,参数也可以相同,但表现的行为却不同
实现多态的三个必要条件
①类的继承关系
②子类重写父类方法
③向上转型
创建Pokemon类作为父类,皮卡丘和喷火龙继承Pokemon类
子类继承了父类,并重写了父类中的skills()方法
测试类
对象的多态性
父类的引用指向子类对象(或子类对象赋给父类的引用)

多态的使用(虚拟方法的调用)

对象调用父类的方法,通过过父类的引用指向子类对象的实体,调用方法时,实际执行的是子类重写父类的方法
虚拟方法
子类中定义了与父类同名同参的方法,在多态的情况下,将此时的父类方法称为虚拟放法,父类根据赋给它的不同子类对象,动态调用属于子类的该方法(动态绑定)
注:多态性只适用于方法,不适用于类的属性
通过p1对象,对喷火龙设置属性haveMaster时,编译器会提示该属性无法解析

多态的应用
在测试类中定义showPokemon()方法,展示精灵信息
该方法中Pokemon类作为形参传入,尽管在测试类中传入一个皮卡丘对象,以及一个喷火龙对象,编译运行都没有问题,只要传入的对象是Pokemon的子类即可
向上转型

注:向上转型不同于自动类型提升,向上转型针对的是类
向下转型

向下转型后p对象可以获取Pikachu类中的特有属性与方法
注:使用向下转型时,可能会抛出异常,使用关键字instanceof判断是否可以向下转型
instanceof关键字
A instanceof a :判断对象A是否是类的实例,返回值为boolean类型

instanceof关键字的使用,避免了向下转型时的异常
实用青年

文章转载自初始化,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Java萌新修炼手册⑥:面向对象の修仙奥义——从"散修"到"宗门大佬"的基因飞升!
让天下没有难学的编程
38次阅读
2025-04-25 10:10:40
Java数据库连接池学习
淡定
31次阅读
2025-04-14 22:46:26
从 Java 到 Go:面向对象的巨人与云原生的轻骑兵
京东云开发者
29次阅读
2025-04-25 11:41:37
Java萌新修炼手册⑤:数组の千层套路——从"鸽子笼"到"摩天楼"的进阶之路!
让天下没有难学的编程
28次阅读
2025-04-25 10:10:41
Java萌新修炼手册②:Hello Worldの108种写法——从入门到入坟!
让天下没有难学的编程
26次阅读
2025-04-21 10:34:36
Java萌新修炼手册④:流程控制の三十六计——让代码学会"见风使舵"!
让天下没有难学的编程
23次阅读
2025-04-23 14:33:55
java浅拷贝BeanUtils.copyProperties引发的RPC异常
京东云开发者
16次阅读
2025-04-30 17:10:50
Java萌新修炼手册①:开局一把JDK,环境搭建全靠浪!
让天下没有难学的编程
16次阅读
2025-04-21 10:34:37
Java程序使用预处理语句的性能提升
GreatSQL社区
15次阅读
2025-04-23 11:18:50
面试官:Java反射和new效率对比,差距有多大?
捡田螺的小男孩
15次阅读
2025-04-13 10:34:43