关于Java中对象的向上转型和向下转型

这篇具有很好参考价值的文章主要介绍了关于Java中对象的向上转型和向下转型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是多态?

同一个类调用同一个方法会产生不同的影响/结果 这就是多态

public class Pet{
	public void eat(){
		System.out.println("Pet eat...")
	}
}
class Dog extends Pet{
	public void eat(){
		System.out.pringln("Dog eat...")
	}
	public void run(){
		System.out.pringln("Dog run...子类特有的方法")
	}
}
class Cat extends Pet{
	public void eat(){
		System.out.println("Cat eat...")
	}
	public void swim(){
		System.out.println("Cat swim...子类特有的方法")
	}
}

为什么向上转型?

限制对子类特有方法的访问

Pet p=new Dog()//向上转型是子类转父类 自动提升不需要强转
p.eat()
p.run() //报错 只能访问到父类有的方法 编译时看左边类型 运行时看右边类型

为什么向下转型?

使用子类特有的方法文章来源地址https://www.toymoban.com/news/detail-419750.html

Pet p=new Cat()
p=(Cat)p //向下转型是父类转子类 需要强制转换但只能转到运行期类型(这里是Cat)
//x instanceof y 可以判断x是否是y类型

到了这里,关于关于Java中对象的向上转型和向下转型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ 多态向上转型详解

    【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485 此篇博文详解C++的多态向上转型 平台 : Qt 【Q】什么是多态? 【A】解释如下 : 通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。在编程语言和类型论中,多态指

    2024年02月03日
    浏览(54)
  • 关于java中的多态和对实例化对象的一些理解

    java面向对象三大特征即为:继承封装多态。而多态需要三大必要条件。分别是:继承、方法重写、父类引用指向子类对象。我们先一个一个来理解。 1、首先是继承和重写。这个很简单。因为多态就是建立在不同的重写之上的。也就是说多态就是在使用着一个方法的不同重写

    2024年02月02日
    浏览(37)
  • 通胀向下,价格向上

    号外: 教链内参2.10《内参:BTC真的存在春节模式吗?》 9号,美国劳工统计局BLS对1月份发布的2023年12月份通胀月环比数据进行了修订,下修了0.1%,从0.3%下调为0.2%。更骚气的是,还把前值也就是11月的数据给上修了0.1%,从0.1%上调为0.2%。 这样一来,通胀数据就从稳步上升变

    2024年02月22日
    浏览(38)
  • 小雉配置--支持向上向下兼容的 配置文件 兼容性 设计

          软件的开发离不开配置,传统的软件设计包括前端、后台和数据库3部分,三者是密切配合的统一整体,在实际项目中往往遇到以下问题: 因项目需求不明而增加、修改、删除参数导致配置结构调整后难以同已有数据兼容; 后台参数修改后,前端需要同步修改,无法

    2023年04月18日
    浏览(48)
  • hive向上取整、向下取整、保留小数位的函数

    1.向上取整函数 ceiling() 示例:select ceiling(10.1) 结果:11 2.向下取整函数 floor() 示例:select floor(10.9) 结果:10 3.四舍五入保留指定小数位 round(a,b) ,a参数是需要处理的数据,b参数是需要保留的小数位 示例:select round(10.562,1) 结果:10.6

    2024年02月16日
    浏览(46)
  • C++的向上转型

    在 C/C++ 中经常会发生数据类型的转换,例如将 int 类型的数据赋值给 float 类型的变量时,编译器会先把 int 类型的数据转换为 float 类型再赋值;反过来,float 类型的数据在经过类型转换后也可以赋值给 int 类型的变量。 数据类型转换的前提是,编译器知道如何对数据进行取舍

    2024年02月09日
    浏览(35)
  • 【数据结构】长篇详解堆,堆的向上/向下调整算法,堆排序及TopK问题

    堆就是将一组数据所有元素按完全二叉树的顺序存储方式存储在一个 一维数组 中,并满足树中 每一个父亲节点都要大于其子节点 称为 大堆 (树中 每一个父亲节点都要大于其子节点 称为 小堆 )。 性质 ①对于大堆(大根堆)来说,堆的顶部也就是数组首元素一定是最大的元素 ②

    2024年02月07日
    浏览(40)
  • 【数据结构】堆的实现(向下调整和向上调整法)和堆排序的实现

    目录 一、堆的概念引入 二、小堆的实现 ①、堆的初始化--HeapInit ②、小堆的向下调整法的实现 ③、堆排序的实现  ④、堆的插入和向上调整法  ⑤、删除堆顶数据 ⑥、获取堆顶 三、时间复杂度总结: 注:本文logN表示以2为底N的对数 普通的二叉树不适合用数组来存储的,因

    2024年02月03日
    浏览(38)
  • 【数据结构】堆:堆的构建,堆的向上调整算法,堆的向下调整算法、堆排序

    目录 一、堆的定义 1、堆的定义: 2、根节点与其左、右孩子间的联系   二、堆的创建 1、堆的向下调整算法  2、堆的向上调整算法  三、堆排序 1、堆的定义: 堆可以被看作是 一棵 完全二叉树 的 数组 对象 。即在 存储结构上是数组,在逻辑结构上是一棵完全二叉树 。在

    2024年01月22日
    浏览(43)
  • js判断手指的上滑,下滑,左滑,右滑,事件监听 和 判断鼠标滚轮向上滚动滑轮向下滚动

    const scrollFunc = (e) = { e = e || window.event; let wheelDelta = e.wheelDelta ? e.wheelDelta : -e.detail * 50; if (wheelDelta 0) { console.log(wheelDelta + ‘滑轮向上滚动’); let dom = document.querySelector(‘.header-contanier’); dom.style.display = ‘flex’; } if (wheelDelta 0) { console.log(wheelDelta + ‘滑轮向下滚动’); let dom =

    2024年02月12日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包