java 上转型对象_Java上转型和下转型对象

2023-05-16

版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创!

恰饭广告

上转型对象:子类创建对象 并将这个对象引用赋值给父类的对象。

语法格式:Father f=new Son();

注意事项:

1、上转型对象是由子类创建的,但上转型对象会失去子类的一些属性和方法。

2、上转型对象调用方法时,就是调用子类继承和重写过的方法。而不会是新增的方法,也不是父类原有的方法。

3、上转型对象可以操纵父类原有的属性和功能,无论这些方法是否被重写。

4、上转型对象可以再强制转换到一个子类对象,强制转换过的对象具有子类所有属性和功能。

代码示例:

public class Shangz{ //父类

int a=1;

int b=2;

void cal(){ //父类自己的方法

System.out.println(a*b);

}

public static void main(String[] args) {

Shangz s=new ShangzDemo();

s.cal(); //上转型对象调用子类的方法

s.err(); //报错,上转型对象失去了子类的属性

}

}

class ShangzDemo extends Shangz{ //子类继承父类

void cal(){ //子类重写父类的方法

System.out.println(a+b);

}

void err(){ //子类自己的方法

System.out.println(a/b);

}

}

下转型对象:父类引用的对象转换为子类的类型(强制类型转换)。

语法格式:

Father f=new Son();

Son s=(Father)f;

错误语法:(编译不报错,运行报错)

Father f=new Father();

Son s=Son(f);

注意事项:

1、向下转型必须先向上转型,否则会发生异常。

2、下转型对象可以引用子类和父类的属性和方法。

代码例子:

public class Shangz{ //父类

int a=1;

int b=2;

void cal(){ //父类自己的方法

System.out.println(a*b);

}

public static void main(String[] args) {

Shangz s=new ShangzDemo();

ShangzDemo d=(ShangzDemo)s;

d.cal(); //调用了父类的方法

d.div(); //对象调用子类的方法

Shangz serr=new Shangz();

ShangzDemo derr=(ShangzDemo)serr;

derr.cal(); //编译不报错,运行出现转换异常

}

}

class ShangzDemo extends Shangz{ //子类继承父类

void cal(){ //子类重写父类的方法

System.out.println(a+b);

}

void div(){ //子类自己的方法

System.out.println(a/b);

}

}

最后:对象转型在泛型中使用较多。

让我恰个饭吧.ヘ( ̄ω ̄ヘ)

支付宝 ——————- 微信

恰饭广告

b2fa10417bcbd2c397d3c42ce544672e.gif

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 上转型对象_Java上转型和下转型对象 的相关文章

随机推荐

  • cmdb项目-3

    1 cmdb资产审计 2 stark组件使用 快速完成网站的一个组件 使用方式与django的admin系统类似 仅仅将model注册 就可以生成对model增删改查的页面 当然这里还包括了模糊搜索 排序 批量操作等等 1 拷贝并注册sta
  • 什么是网络操作系统?网络操作系统具有那些基本功能?

    1 网络操作系统可以理解为网络用户与计算机网络之间的接口 xff0c 他是专门为网络用户提供操作接口的的系统软件 xff0c 除了管理计算机的软件和硬件资源 xff0c 具备单机操作系统所有的功能外 xff0c 还具有向网络计算机提供网络通
  • .net event 使用 Action

    Action lt string gt methodCall 61 x 61 gt x 43 61 34 haha 34 MessageBox Show x public event Action lt string gt BoilerEv
  • VS-按F12无法跳转到函数定义,点击右键也无法跳转

    工具 gt 选项 gt 项目和解决方案 gt 常规 xff0c 把 在解决方案资源管理器中跟踪活动项 反选 转载于 https www cnblogs com zaishuiyifang006 p 5640318 html
  • C语言文件操作笔记-4

    C文件操作 文件函数说明相关函数说明 xff1a opendirclosedirmkdirtelldirseekdirseekdirrmdirrmdiraccessreaddir 示例代码 xff1a 示例1 xff1a 综合使用 文件函数
  • 如何免费获得auto uninstaller的密钥?auto uninstaller密钥是不是得买?auto uninstaller密钥是多少?...

    如何免费获得auto uninstaller的密钥 xff1f auto uninstaller密钥是不是得买 xff1f auto uninstaller密钥是多少 xff1f 找到一个帖子密钥可以用 技术贴 xff1a auto uni
  • 网络:万维网(WWW)

    ylbtech 网络 xff1a 万维网 xff08 WWW xff09 www xff08 万维网缩写 xff09 同义词 万维网一般指www xff08 万维网缩写 xff09 WWW是环球信息网的缩写 xff0c xff08 亦作 W
  • Linux 系统查看服务器SN序列号以及服务器型号

    1 单独查看服务器的序列号 root 64 localhost dmidecode t system grep 39 Serial Number 39 Serial Number 2102310YPY10J30 2 单独查看服务器型号 ro
  • mysql与mysqld

    mysql是客户机 服务器的结构 mysql是客户端行工具 xff0c 连接mysqld服务 xff0c 执行sql命令 xff0c 可认为客户端sdk mysqld 启动mysql数据库服务 脚本启动mysql服务的命令是 net sta
  • Gazebo: Could not find parameter robot_description on parameter server

    robot state publisher looks for the parameter 34 robot description 34 by default The robot state publisher tutorials sug
  • LocalDateTime的一些用法

    包括获取当前时间 xff0c 指定特定时间 进行时间的加减等 LocalDateTime localDateTime3 61 LocalDateTime now LocalDate now LocalTime now localDateTi
  • HDFS读写流程

    一 HDFS中的block packet chunk 1 Block 在将文件上传到hdfs之间需要分块 xff0c 这个块就是block xff0c 默认为128MB xff08 hadoop2 X xff09 xff0c 当然可以更改
  • 事件本质

    事件为什么不能再外面赋值 xff1f 本质上把事件编译成一个私有的委托变量 里面有 add 委托名 事件名 和remove 委托名 事件名 方法 这两个属性就是利用多播委托的原理 43 61 xff1a Delegate Combine x
  • [powershell]统计目录大小

    Write Host DU 1 0 统计目录大小的脚本 xff0c 作用和linux的du类似 96 n args 61 34 D software 34 if args write host span style color 800000
  • 什么是块级元素和内联级元素

    1 block xff08 块 xff09 元素 的特点 xff1a 总是在新行上开始 xff1b 高度 xff0c 行高以及外边距和内边距都可控制 宽度缺省是它的容器的100 xff0c 除非设定一个宽度 它可以容纳内联元素和其他块元素
  • Zstack中UART0和UART1同时工作的方法

    1 在 project gt options gt C C 43 43 compiler pre processors settings中 设置如下 xff1a HAL UART 61 TRUE HAL UART ISR 61 2 HAL
  • Docker命令详解(run篇)

    命令格式 xff1a docker run OPTIONS IMAGE COMMAND ARG Usage Run a command in a new container 中文意思为 xff1a 通过run命令创建一个新的容器 xff08
  • 计算机vb考试程序试题,二级计算机VB语言程序设计考试题及答案

    二级计算机VB语言程序设计考试题及答案 为了使广大考生在备战计算机等级考试时 xff0c 更快的掌握相应知识点 xff0c 下面是小编搜索整理的二级计算机VB语言程序设计考试题及答案 xff0c 供参考练习 xff0c 预祝考生们考出自己理
  • linux vnc xstartup,vnc 远程桌面选择的配置 xstartup

    默认的配置是twm xff0c 很简陋 xff01 xff01 xff01 主要是桌面的配置 vi vnc xstartup 这个是gnome bin sh Uncomment the following two lines for nor
  • java 上转型对象_Java上转型和下转型对象

    版权声明 xff1a 转载原创文章请以超链接形式请注明原文章出处 xff0c 尊重作者 xff0c 尊重原创 xff01 恰饭广告 上转型对象 xff1a 子类创建对象 并将这个对象引用赋值给父类的对象 语法格式 xff1a Father