Java 多态①
📅 2026/7/24 18:01:49
👁️ 次浏览
目录1. 什么是多态2. 构成多态的条件3. 重写3.1 条件和注意点3.2 向上转型3.3 重写4. 静态绑定和动态绑定4.1 什么是静态绑定4.2 什么是动态态绑定1. 什么是多态不同对象完成相同的行为,产生不同的结果例如产生产生写代码C语言JavaC语言程序Java程序2. 构成多态的条件必须有继承关系//没有继承不能形成多态classStudentextendsPerson必须有方法重写classAnimal{publicvoideat(){System.out.println(name正在吃);}}classDogextendsAnimal{publicvoideat(){System.out.println(name正在吃狗粮);}}3. 重写3.1 条件和注意点构成重写的条件 子类的权限修饰关键字必须父类的。子类和父类的方法名称必须一样。子类和父类的方法的参数列表必须一样即参数类型、参数顺序、参数个数相同。子类和父类的方法的返回类型必须相同除返回类型构成父子关系注意被以下关键字修饰的方法无法构成重写 final修饰的方法private修饰的方法static修饰的方法3.2 向上转型子类对象赋值给父类引用方式①直接赋值classAnimal{publicvoideat(){System.out.println(动物吃东西);}}classDogextendsAnimal{publicvoidbark(){System.out.println(狗叫);}}publicclassTest{publicstaticvoidmain(String[]args){AnimalaninewDog();}}方式② :通过方法传参classAnimal{intage;Stringname;publicvoideat(){System.out.println(name正在吃);}publicAnimal(Stringname,intage){this.namename;this.ageage;}publicvoidsleep(){System.out.println(name正在睡觉);}}classDogextendsAnimal{Stringbreed;publicDog(Stringname,intage,Stringbreed){super(name,age);this.breedbreed;}publicvoideat(){System.out.println(name正在吃狗粮);}}publicclassTest{publicstaticvoidfunc(Animalani){ani.eat();}publicstaticvoidmain(String[]args){DogdognewDog(B,7,black);func(dog);}}3.3 重写classAnimal{intage;Stringname;publicvoideat(){System.out.println(name正在吃);}publicAnimal(Stringname,intage){this.namename;this.ageage;}}classDogextendsAnimal{Stringbreed;publicDog(Stringname,intage,Stringbreed){super(name,age);this.breedbreed;}publicvoideat(){System.out.println(name正在吃狗粮);}}publicclassTest{publicstaticvoidmain(String[]args){AnimalaninewDog(A,10,golden);ani.eat();}}返回值类型构成父子关系的重写classAnimal{Stringname;publicAnimaleat(){AnimalaninewAnimal();System.out.println(name正在吃);returnani;}}classDogextendsAnimal{publicDogeat(){DogdnewDog();System.out.println(name正在吃狗粮);returnd;}}publicclassTest{publicstaticvoidmain(String[]args){AnimalaninewDog();ani.nameA;ani.eat();}}向上转型后父类引用只能访问父类中声明的成员变量和成员方法如果子类重写了父类的方法调用时会执行子类重写的方法。classAnimal{intage;Stringname;publicvoideat(){System.out.println(name正在吃);}publicAnimal(Stringname,intage){this.namename;this.ageage;}publicvoidsleep(){System.out.println(name正在睡觉);}}classDogextendsAnimal{Stringbreed;publicDog(Stringname,intage,Stringbreed){super(name,age);this.breedbreed;}publicvoideat(){System.out.println(name正在吃狗粮);}}publicclassTest{publicstaticvoidmain(String[]args){AnimalaninewDog(A,10,golden);ani.eat();ani.breedgrey;//❌ani.sleep();//✅}}屏蔽错误代码加上错误代码4. 静态绑定和动态绑定4.1 什么是静态绑定publicclassTest{publicstaticvoidprint(){System.out.println(无参数 print);}publicstaticvoidprint(inta){System.out.println(参数a print);}publicstaticvoidmain(String[]args){print();print(1);}}静态绑定在编译阶段根据参数来确定执行哪个方法4.2 什么是动态态绑定classAnimal{intage;Stringname;publicvoideat(){System.out.println(name正在吃);}publicAnimal(Stringname,intage){this.namename;this.ageage;}}classDogextendsAnimal{Stringbreed;publicDog(Stringname,intage,Stringbreed){super(name,age);this.breedbreed;}publicvoideat(){System.out.println(name正在吃狗粮);}}publicclassTest{publicstaticvoidmain(String[]args){AnimalaninewDog(A,10,golden);ani.eat();}}通过字节码文件可以看到编译的时候还是Animal的eat方法。但是程序运行的时候变成了子类的eat , 这个过程叫做动态绑定。动态绑定即在编译时不能确定方法的行为需要等到程序运行时才能够确定具体调用那个类的方法。
QQ空间历史说说终极备份指南:3步找回消失的青春记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
你是否发现QQ空间只能查看最近几年的说说?那些承载着青春记忆…
📅 2026/7/24 18:01:49
wechat-need-web 技术指南:浏览器扩展实现微信网页版访问的技术架构与部署实践 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web
微信作为中…
📅 2026/7/24 18:01:49
很多人一听到“卫星遥感”或者“geo 对地观测平台”这种高大上的词,脑子里浮现的都是好莱坞大片里那种满屏代码、黑客在暗网操作的黑客帝国场景。但现实是,对于大多数做工程、做农业或者做城市管理的老板来说,这东西没那么玄乎,它其实就是你头顶上那双不知疲倦的“千里眼”…
📅 2026/7/24 18:00:34
抖音下载终极指南:5分钟掌握无水印视频批量下载的完整方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…
📅 2026/7/24 19:27:20
如何3分钟轻松下载网页视频:猫抓视频嗅探工具终极指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch
你是否曾经在观看精彩的在线视频…
📅 2026/7/24 19:27:20
方达炬 发明一例新字词:
正确自卫身体外因风险责任
不正确自卫身体外因风险责任
📅 2026/7/24 19:27:20
第六届光学成像与图像处理国际学术会议 (ICOIP 2026)
2026 6th International Conference on Optical Imaging and Image Processing
2026年8月28日-30日丨中国 南京 大会官网:www.icoip.net
截稿时间:见官网(早投稿,早录用&a…
📅 2026/7/24 19:27:20
641 | 企业架构:让技术为业务赋能
想象你要建一座城市。
没有规划的城市: 道路乱七八糟 工业区挨着住宅区 下水道建在地铁上面 改一条路要挖十次 有规划的城市: 工业区、商业区、住宅区泾渭分明 道路网格化,想改哪条改哪条 基础设施先行,后来者遵守规范 企业架构,就是I…
📅 2026/7/24 19:27:20
HarmonyOS开发实战:小分享-多 module 工程化——拆分 features 模块 前言
多 module 工程化 是大型应用的最佳实践,将功能拆分为独立的模块,实现代码解耦、并行开发、按需加载。小分享 App 的编辑器、模板、设置等功能可以拆分为独立模块。本…
📅 2026/7/24 19:26:20
大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…
📅 2026/7/24 0:00:05
srcampy /libsrcampy 名称释义先明确结论: 官方文档没有公布标准化英文全称,是地平线内部项目缩写;行业公认拆解如下:srcampy Source Amplifier Python bindingsrc Source(图像源:MIPI Sensor、视频源&am…
📅 2026/7/24 0:01:06
该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…
📅 2026/7/24 0:01:06
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/24 1:07:52
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/24 1:07:52
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/24 1:07:52
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/24 7:08:08
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/24 17:08:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/24 5:08:03