当前位置: 首页 > news >正文

java的对象向上转型

对象向上转型,父类对象就可以调用子类重写父类的方法,这样当父类对象需要添加新的功能时,只需要添加一个子类,在子类中对父类的功能进行扩展,而不需要更改父类代码

向上转型,格式如下

父类类型 父类对象=子类实例

示例代码如下

class Animal{public void shout(){System.out.println("喵喵....");}
}class Dog extends Animal{public void shout() {System.out.println("汪汪·····");}public void eat(){System.out.println("吃骨头····");}
}public class Shangxiangzhuanxiang {public static void main(String[] args) {//向上转型Dog dog=new Dog();Animal an = dog;an.shout();}

在上面代码中

class Animal{public void shout(){System.out.println("喵喵....");}
}

父类Animal定义了一个方法,shout方法输出的内容是“喵喵”


class Dog extends Animal{public void shout() {System.out.println("汪汪·····");}public void eat(){System.out.println("吃骨头····");}
}

这段代码里,子类继承了父类,重写了shout方法,并且新写了一个eat方法

public class Shangxiangzhuanxiang {public static void main(String[] args) {//向上转型Dog dog=new Dog();Animal an = dog;an.shout();}

执行代码里,先定义了Dog类的对象实例,通过Animal an = dog的方法实现了向上转型,把shout方法重写了。

最后执行shout方法,输出的是

“汪汪”

http://www.lryc.cn/news/410998.html

相关文章:

  • Navicat Premium 16破解
  • 【C/C++】C语言到C++的入门知识点(主要适用于C语言精通到Qt的C++开发入门)
  • docker 建木 发版 (详细教程)
  • 什么样的人适合学习网络安全?
  • 大厂linux面试题攻略四之Linux网络服务(二)
  • MySQL和PostgreSQL group by后 Concatenate 拼接所有的字符串
  • Python爬虫技术 第24节 数据清洗和预处理(二)
  • conda常用命令整理
  • JDK8新特性之Lambda表达式快速入门
  • QEMU源码全解析 —— CPU虚拟化(14)
  • libsoup的简单使用
  • electron项目搭建
  • 【CVPR2024】Efficient LoFTR: 高效的 LoFTR:具有类似稀疏的速度的半密集局部特征匹配
  • 【Golang 面试 - 基础题】每日 5 题(九)
  • 《程序猿入职必会(4) · Vue 完成 CURD 案例 》
  • 编程技巧:如何优雅地合并两个有序数组?
  • Vue组件库移动端预览实现原理
  • FastAPI(七十五)实战开发《在线课程学习系统》接口开发-- 创建课程
  • 【C++】 条件变量实现线程同步示例
  • linux下载redis安装并指定配置文件启动
  • 线性结构、线性表、顺序表、链表、头插法、尾插法、中间插入或删除一个节点
  • C# Task.WaitAll 的用法
  • vue2 前端实现pdf在线预览(无插件版)
  • 排序XXXXXXXXX
  • 【文件解析漏洞】实战详解!
  • 【杂谈】学会让你节省三秒钟——Dev-c++的缺省源
  • 推荐一款前端滑动验证码插件(Vue、uniapp)
  • 【Git】git stash
  • 不得不安利的程序员开发神器,太赞了!!
  • 吴恩达机器学习C1W2Lab06-使用Scikit-Learn进行线性回归