首页
学习
活动
专区
圈层
工具
发布

Java向上转型和向下转型

向上转型的好处?...sleep传入的参数是子类,若是不用向上转型,那么有多少个子类就得在这儿写多少种不同的睡觉方法 二.向下转型 class Fruit{ public void myName(){ System.out.println...//向下转型 //f指向子类的对象,子类的实例a也指向f,向下转型后因为都是指向子类对象,调用的全是子类的方法 Apple a=(Apple)f; a.myName(); a.myMore...(); //向下转型之前必须进行向上转型 //编译无错但会运行会出错ClassCastException,子类aa不能指向父类ff Fruit ff=new Fruit();...经过了这个过程,子类实例已经赋值给了父类引用(即完成了向上转型),但很遗憾的丢失了子类扩展的方法。使用向下转型的特性,让我们可以重新获得丢失的方法,即强转回子类

1.1K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Java】向上转型和向下转型

    先用一个生动形象的例子来解释向上转型和向下转型 向上转型(Upcasting) 想象你有一个动物园,里面有各种不同类型的动物,如狮子、大象、长颈鹿等。...在Java中,向上转型是安全的,因为子类继承了父类的所有属性和方法(除了私有方法和构造方法)。...这就是向上转型和多态性的实际应用。 发生向上转型的情况 1.子类对象赋值给父类引用 当子类的实例直接赋值给父类类型的引用时,会发生向上转型。这是最常见的向上转型场景。...在Java中,子类拥有父类的所有属性和方法(除了 private 修饰的属性和方法),同事还可以定义自己特有的属性和方法。...注意访问权限: 在向下转型后,我们可以访问子类特有的属性和方法。

    1.4K10

    JavaSE(五)JAVA对象向上转型和向下转型

    java中对象的转型分为向上转型和向下转型 一、对象的向上转型   1.1、定义 子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。...二、对象的向下转型   1.1、定义     父类引用的对象转换为子类类型成为向下转型   1.2、解释     Son s = (Son)f1;     这就是downcasting,向下转型。   ...在这个程序中            Girl g1=new MMGirl(); //向上转型     g1.smile();     MMGirl mmg=(MMGirl)g1; //向下转型...,编译和运行皆不会出错     这里的向下转型是安全的。...2、把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转型。

    1.7K60

    【Java】如何理解Java中的向上转型和向下转型

    先说概念,在Java中,向上转型指的是:将子类对象赋值给父类引用,例如: Animal animal = new Dog(); 这种操作在Java中非常常见,比如在面向接口编程时: List list = new ArrayList(); 向上转型是由Java自动完成的(也叫自动类型提升),非常安全,但要注意,这样的父类对象不可以使用子类特有的方法 而向下转型指的是:通过强转,将父类的引用...其实这样做的原因是,有时候我们不知道该使用哪种实现,有时候一个功能接口可能有多种实现,比如支付功能有微信支付和支付宝支付,为了符合面向接口编程的思想,降低耦合度,可以先统一创建一个父类对象,然后再进行强转...,这样就增加了我们代码的的解耦性、扩展性和复用性。

    39210

    数据结构--堆的向上调整和向下调整

    1.完全二叉树 下面的这个就是对于我们的完全二叉树的这个逻辑结构和物理结构的说明: 逻辑结构就是我们自己认为的进行购想出来的; 但是这个物理结构却是我们的这个数据结构在内存里面的真是进行存储的这个形态的一个体现...这个时候我们就把这个树称之为完全二叉树; 3)下面的这个满二叉树实际上就是一个完全二叉树; 4)我们可以看到这个完全二叉树在我们的这个内存里面实际上是使用这个数组进行存储的,但是我们在学习这个数据结构的时候,使用的是他的逻辑结构...,也就是二叉树; 2.堆向上调整 这个主要是我们的建堆的过程,就是我们进行建堆的时候,这个数据从我们的叶子结点开始需要进行这个向上调整的过程; 我们从上面的这个建堆的过程是可以看到的,他是需要和自己的这个父亲节点不断地进行比较...,不断的向下调整-----------这个就是我们的向下调整的这个出现的场景; 下面的这个就是我们进行pop操作的时候,我们需要交换之后size–就可以了,然后我们对于这个时候的0下标的位置的元素向下调整...如果发现是这个右边的比左边的大,我们的这个child++,同时如果出现了这个只有左边的孩子,没有右边的孩子,这个时候child+1就会越界,因此我们使用这个child+1防止越界; 下面的这个就是我们的4和17

    33500

    二十二.图像金字塔之图像向下取样和向上取样

    本文将讲解图像金字塔,包括图像向下采样和图像向上采样。基础性文章,希望对你有所帮助,且看且珍惜!...[Python图像识别] 二十二.图像金字塔之图像向下取样和向上取样 学Python近十年,认识了很多大佬和朋友,感恩。...- https://blog.csdn.net/eastmount 一.图像金字塔 前面讲解的图像采样处理可以降低图像的大小,本小节将补充图像金字塔知识,了解专门用于图像向上采样和向下采样的pyrUp(...图像金字塔可以通过梯次向下采样获得,直到达到某个终止条件才停止采样,在向下采样中,层级越高,则图像越小,分辨率越低。 生成图像金字塔主要包括两种方式——向下取样、向上取样。...它将图像在每个方向上扩大为原图像的2倍,新增的行和列均用0来填充,并使用与“向下取样”相同的卷积核乘以4,再与放大后的图像进行卷积运算,以获得“新增像素”的新值。

    1.4K10

    聊一聊自底向上测试和自顶向下测试的优缺点

    在大多数情况下,自底向上的策略与自顶向下的策略是相对立的。自顶向下测试的优点成为自底向上测试的缺点,而自顶向下测试的缺点又成为自底向上测试的优点。正因为这一点,我们对自底向上测试的介绍就简短一些。...检查一下与自顶向下方法相关的其他问题,我们再也不会做出让设计和测试重叠的不明智决定,因为自底向上的测试要直到程序底层设计完成之后方才开始。...如果自顶向下的方法和自底向上的方法,就象增量测试和非增量测试一样区别分明,那么比较起来很容易但遗憾的是,情况并非如此。...由于这里缺乏一个规程,自顶向下测试第四个缺点的严重后果,以及有可用的测试工具减少了对驱动模块而不是桩模块的需求,这样似乎给自底向上的策略带来了优势。...自底向上测试和自顶向下测试各有优缺点,选择哪种测试策略取决于具体的软件开发场景和需求。对于底层接口稳定、高层接口变化频繁且底层模块较早完成的软件产品,可以考虑采用自底向上测试策略。

    83620

    TOP-K问题和向上调整算法和向下调整算法的时间复杂度问题的分析

    a[123] = 100000 + 3; a[456] = 100000 + 4; a[789] = 100000 + 5; int k = 5; top_k(a, 1000, k); } 向上调整算法和向下调整算法的时间复杂度...因为堆是完全二叉树,而满二叉树也是完全二叉树,此处为了简化使用满二叉树来证明(时间复杂度本来看的就是近似值,多几个节点不影响最终结果): 我们令高度为h,节点个数n就等于2^(h)-1个 那么在向上调整算法中...: 最坏情况下,最后一层的节点需要向上移动h-1次,依次类推,就得到总次数的表达式,然后再用错位相减法和n和h的关系就能求出时间复杂度f(n)了 在向下调整算法中: 最坏情况下,倒数第二层节点向下只移动一次...,第一层最多移动h-1次 总结下来我们就会发现,向上调整算法中是多节点乘多层数的关系,而向下调整算法则是多节点乘少层数的关系,我们进行比较就会发现其实向下调整算法的效率更高,所以在平常的排序和建堆中我们...最常用的还是向下调整算法 向上调整算法的时间复杂度为: n*log(n) 向下调整算法的时间复杂度为: log(n) 因此,向下调整算法的效率是远大于向上调整算法的!

    54310

    WEB入门之十八 动画特效

    表8-1-2 滑动动画函数 函数 说明 slideDown( ) 元素向下滑动特效(高度增加) slideUp( ) 元素向上滑动特效(高度减少) slideToggle( ) 元素向上/向下滑动切换特效...该函数可以自动进行向上/向下滑动的切换,同样可以使用一个参数来设置动画速度。... jQuery凭借其简洁的语法和跨平台的兼容性,极大的简化了JS开发。其独特而优雅的代码风格改变了开发人员的设计思路和编码方式。...,即高度为0;如果元素高度为0,则向下滑动,不断这样切换。...本章我们学习了jQuery提供的各种动画特效,包括显示/隐藏动画、滑动动画、淡入淡出动画和自定义动画,这些动画特效都是通过jQuery内置的动画函数实现的,这些函数简单易用,大家要掌握熟练。 ​

    1.9K10

    WEB入门之十八 动画特效

    表8-1-2 滑动动画函数 函数 说明 slideDown( ) 元素向下滑动特效(高度增加) slideUp( ) 元素向上滑动特效(高度减少) slideToggle( ) 元素向上/向下滑动切换特效...jQuery凭借其简洁的语法和跨平台的兼容性,极大的简化了JS开发。其独特而优雅的代码风格改变了开发人员的设计思路和编码方式。jQuery是一个轻量级的库,大小不超过200K。...该函数可以自动进行向上/向下滑动的切换,同样可以使用一个参数来设置动画速度。...,即高度为0;如果元素高度为0,则向下滑动,不断这样切换。...本章我们学习了jQuery提供的各种动画特效,包括显示/隐藏动画、滑动动画、淡入淡出动画和自定义动画,这些动画特效都是通过jQuery内置的动画函数实现的,这些函数简单易用,大家要掌握熟练。

    1.8K10
    领券