JAVA.4.多态

目录

1.表现形式

2.前提条件

1.有继承关系

2.有父类引用指向子类对象

3.有方法的重写

3.注意事项

代码演示

代码结构


1.表现形式

父类类型   对象名字   = new   子类对象();

2.前提条件

1.有继承关系

2.有父类引用指向子类对象

3.有方法的重写

3.注意事项

1.调用成员方法,编译看左边,看左边有没有这个方法,不然就编译失败报错

运行看右边,调用的是右边的对象的方法,即子类的方法

2.调用成员变量,编译运行都看左边

animal   a  =  new  dog();

a.name     调用成员变量,看左边,左边有这个变量,编译成功,运行也看左边,左边是animal  所以  name=animal

a.show     调用成员方法,看左边,左边有这个方法,编译成功,运行看右边,子类对父类的show方法进行重写,所以调用的是子类的show方法,所以打印的是show dog

代码演示

代码结构

package animalpakage;class animal {String name = "animal";public void show() {System.out.println(name + "animal show");}
}class dog extends animal {String name = "dog";@Overridepublic void show() {System.out.println(name + "dog show");}
}class cat extends animal {String name = "cat";@Overridepublic void show() {System.out.println(name + "cat show");}}
package animalpakage;public class animalTest {public static void main(String[] args) {animal a=new dog();System.out.println(a.name);a.show();}
}

给dog加上特有的方法,编译看左边,父类没有dogthing这个方法,所以报错了

class dog extends animal {String name = "dog";@Overridepublic void show() {System.out.println(name + "dog show");}public void dogthing(){System.out.println(name + "dog eat bone");}
}

那么如何使用这个子类特有的方法呢?

需要转类型,但需要先判断它是不是dog这个类型

package animalpakage;public class animalTest {public static void main(String[] args) {animal a=new dog();System.out.println(a.name);a.show();if(a instanceof dog d){d.dogthing();}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1487674.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

微服务(网关路由)

目录 一:网关路由 1:认识网关 2:快速入门 2.1:创建项目 2.2:引入依赖 2.3:启动类 2.4:路由配置 2.5:测试 3:路由过滤 二:网关登录校验 1&…

elasticsearch 解决全模糊匹配最佳实践

事件背景: 某 CRM 系统,定义了如下两个表: 客户表 t_custom 字段名 类型 描述 idlong自增主键phonestring客户手机......... 客户产品关系表 t_custom_product 字段名 类型 描述 idlong自增主键custom_idlong客户idproduct_idlong产品…

Leetcode—74. 搜索二维矩阵【中等】

2024每日刷题&#xff08;149&#xff09; Leetcode—74. 搜索二维矩阵 实现代码 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m matrix.size();int n matrix[0].size();int l 0;int r m * n;int mid -1…

数据结构--二叉树详解

一&#xff0c;概念 1&#xff0c;结点的度&#xff1a;一个结点含有子树的个数称为该结点的度 2&#xff0c; 树的度&#xff1a;一棵树中&#xff0c;所有结点度的最大值称为树的度&#xff1b; 3&#xff0c;叶子结点或终端结点&#xff1a;度为0的结点称为叶结点&#x…

【React】JSX:从基础语法到高级用法的深入解析

文章目录 一、什么是 JSX&#xff1f;1. 基础语法2. 嵌入表达式3. 使用属性4. JSX 是表达式 二、JSX 的注意事项1. 必须包含在单个父元素内2. JSX 中的注释3. 避免注入攻击 三、JSX 的高级用法1. 条件渲染2. 列表渲染3. 内联样式4. 函数作为子组件 四、最佳实践 在 React 开发中…

【玩转C语言】第五讲--->数组-->一维和多维深度理解

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 引言&#xff1a; 大家好&#xff0c;我是坊钰&#xff0c;为了让大家深入了解C语言&#xff0c;我开创了【玩转C语言系列】&#xff0c;将为大家介绍C语言相关知识…

如何使用 SQLite ?

SQLite 是一个轻量级、嵌入式的关系型数据库管理系统&#xff08;RDBMS&#xff09;。它是一种 C 库&#xff0c;实现了自给自足、无服务器、零配置、事务性 SQL 数据库引擎。SQLite 的源代码是开放的&#xff0c;完全在公共领域。它被广泛用于各种应用程序&#xff0c;包括浏览…

重生之“我打数据结构,真的假的?”--4.二叉树(无习题)

1.二叉树 1.1概念与结构 在树形结构中&#xff0c;我们最常⽤的就是⼆叉树&#xff0c;⼀棵⼆叉树是结点的⼀个有限集合&#xff0c;该集合由⼀个根结点 加上两棵别称为左⼦树和右⼦树的⼆叉树组成或者为空。 1. ⼆叉树不存在度⼤于 2 的结点 2. ⼆叉树的⼦树有左右之分&…

《梦醒蝶飞:释放Excel函数与公式的力量》20.2 教学材料的自动化处理

第20章&#xff1a;自动化教学辅助工具 20.2 教学材料的自动化处理 自动化处理教学材料是利用编程技术和工具&#xff0c;自动执行教学材料的生成、整理和分发等任务的过程。通过自动化&#xff0c;可以提高教学材料处理的效率&#xff0c;减少手动操作的时间&#xff0c;从而…

用Swagger进行后端接口测试的实战操作

目录 一.什么是Swagger&#xff1f; 二.Swagger的使用操作流程&#xff1a; 1.在pom.xml配置文件导入 Knife4j 的依赖&#xff1a; 2.在config配置类中加入 Knife4j 的相关配置并设置静态资源映射&#xff08;否则接口文档无法访问&#xff09;&#xff1a; 三.Swagger的四个…

InteliJ IDEA最新2024版下载安装与快速配置激活使用教程+jdk下载配置

第一步&#xff1a;下载ideaIC-2024.1.4 方法1&#xff1a;在线链接 IntelliJ IDEA – the Leading Java and Kotlin IDE (jetbrains.com) 选择社区版进行下载 方法2&#xff1a;百度网盘 链接&#xff1a;https://pan.baidu.com/s/1ydS6krUX6eE_AdW4uGV_6w?pwdsbfm 提取…

解决django与sqlite3不兼容报SQLite 3.9.0 or later is required错的问题

今天在尝试用pytest进行django的单元测试&#xff0c;pytest用的数据库是sqlite3&#xff0c;在window环境下测试得好好的&#xff0c;但是放到linux环境下就报错&#xff0c;具体是报django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found …

LabVIEW学习-LabVIEW处理带分隔符的字符串从而获取数据

带分隔符的字符串很好处理&#xff0c;只需要使用"分隔符字符串至一维字符串数组"函数或者"一维字符串数组至分隔符字符串"函数就可以很轻松地处理带分隔符地字符串。 这两个函数所在的位置为&#xff1a; 函数选板->字符串->附加字符串函数->分…

超声波俱乐部:AI应用大爆发前夜,场景、闭环与LLM进化

7月13日&#xff0c;第十九期超声波俱乐部内部分享会在北京望京举行&#xff0c;本期的主题是&#xff1a;AI应用大爆发前夜&#xff0c;场景、闭环与LLM进化。 到场的嘉宾有&#xff1a;超声波创始人杨子超&#xff0c;超声波联合创始人、和牛商业创始人刘思雨&#xff0c;豆…

html+css 边框滑动按钮效果

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽效果&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 文…

基于 HTML+ECharts 实现智慧工地数据可视化大屏(含源码)

构建智慧工地数据可视化大屏&#xff1a;基于 HTML 和 ECharts 的实现 智慧工地已成为建筑行业的新趋势。通过实时监控和数据分析&#xff0c;智慧工地可以提高施工效率、降低安全风险。本文将详细介绍如何利用 HTML 和 ECharts 实现一个功能强大的智慧工地数据可视化大屏。 源…

vue3前端开发-小兔鲜项目-sku的实现

vue3前端开发-小兔鲜项目-sku的实现&#xff01;这是一个会计学的特殊专业名词&#xff0c;可以理解为产品的型号&#xff0c;规格的货品计量单位。 它是一组数据的混合体。比如&#xff1a;尺寸&#xff0c;材料&#xff0c;品质&#xff0c;等等。组合在一起形成的一个混合数…

pikachu Fileinclusion(local)

随便选择一个都试试 发现url上数字会变 发现文件名确实是file1.php~file5.php 那么会不会还有别的burp抓包选中数字 设置6-100的爆破 strat attack 678异常还有个100也是 先改一下试试看 其他的会报错 但是通过这我们可以得到路径 先写一个 下一步 读取系统文件 windows系统肯定…

产品系统的UI暗色系和浅色系模式切换是符合人体视觉工程学的设计

视觉革命&#xff1a;UI设计中的暗夜与黎明 UI设计如同夜空中最亮的星辰&#xff0c;引领着用户穿梭于信息的海洋。而今&#xff0c;一场视觉革命正在悄然上演&#xff0c;它关乎于我们的眼睛&#xff0c;关乎于我们的体验——那就是产品系统的UI暗色系和浅色系模式的切换。如…

Git merge

Git merge 参考文档&#xff1a; https://marsishandsome.github.io/2019/07/Three_Way_Merge https://git-scm.com/docs/merge-strategies https://stackoverflow.com/questions/56889406/how-does-git-compare-two-files-while-merging Git merge的目标是合并changes&#x…