java中为什么使用上转型和下转型

  1. 为什么使用上转型?因为当一个父类有很多子类,子类都重写了父类的方法并加以使用。这时候,如果要在之前代码让你用其他子类来实现,就变得很简单,只需要把A a = new B();换成A a = new C();(假设B和C都继承了A),其他只要重写父类方法属性之类的无需改动。(当然这只是向上转型的重要一点,还有其他好处,不列举)

  2. 为什么要向下转型?因为当我们拿到一个父类,我们想把它当作我们需要的具体类时,可以尽情地用到我们要的类的所有方法属性,这时候当然需要向下转型,以便更多使用子类它独有的方法属性,但要确保一定能向下转型成功,不然出大错。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

session和cache的区别

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 以前实现数据的缓存有很多种方法,有客户端的Cookie,有服务器端的Session和Application。 其中Cookie是保存在客…

第四个

。 转载于:https://www.cnblogs.com/wxy2000/p/9657823.html

26-- 转换成小写字母

文章目录1.问题描述2.代码详情1.问题描述 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。 示例 1: 输入: “Hello” 输出: “hello” 示例 2:…

java守护线程和用户线程的区别

Java中的线程可以分为两类,即用户线程和守护线程。用户线程是为了完成任务,而守护线程主要是为其他线程服务。 守护线程的唯一用途是为其他线程提供服务。守护线程会随时中断,因此不要在守护线程上使用需要释放资源的资源,如输入输…

初学duboo+zookeeper

看了很多相关资料,其实都没有自己动手试一次印象更深刻一些。找了很多教程,下工具,花了几个小时终于让程序跑起来了,下面说下步骤:1.java环境也就安装jdk,我使用的是1.7版本,jdk安装就不在这复述…

Fedora 17 Beta 版发布

Fedora团队今天发布了Fedora 17 Beta版本,这是正式版本发布前的最后一个重要的里程碑版本。据该团队介绍,正式版将在今年5月发布,将主要修复Beta版中发现的关键性bug。针对普通用户的桌面改进: 采用GNOME 3.4,提升了用…

27--字符串相加

文章目录1.问题描述2.代码详情1.问题描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库&…

[转] 一文弄懂神经网络中的反向传播法——BackPropagation

在看CNN和RNN的相关算法TF实现,总感觉有些细枝末节理解不到位,浮在表面。那么就一点点扣细节吧。 这个作者讲方向传播也是没谁了,666~ 原文地址:https://www.cnblogs.com/charlotte77/p/5629865.html 最近在看深度学习…

java线程组

线程组 线程组是Java线程编程所持有的概念。在Java中,线程组是指java.lang.ThreadGroup类的对象,每个线程都隶属于唯一的一个线程组,这个线程组在线程创建时指定并在线程的整个生命周期内都不能更改。可以通过调用包含ThreadGroup类型参数的T…

FreeBSD 8.3 发布

近日,FreeBSD开发团队放出了8.x稳定分支的8.3版本。此次发行的版本将支持amd64、i386、pc98和 sparc64等处理器类型。FreeBSD是一种类UNIX操作系统,但不是真正意义上的 UNIX 操作系统,它是由经过 BSD、386BSD 和 4.4BSD 发展而来的 Unix 的一…

Java中四种访问权限总结

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private、public、protected,还有一种不…

28--仅仅反转字母

文章目录1.问题描述2.代码详情1.问题描述 给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。 示例 1: 输入:“ab-cd” 输出:“dc-ba” 示例 2&…

Moving Average

移动平均算法Demo #!/usr/bin/python2.7 # Fetch data from BD and analyse.import json import urllib import traceback import numpy as np # import pandas as pd import matplotlib.pyplot as plt #from scipy import statsdef fetch_raw_data(url):try:response urllib.…

【前端工程师手册】JavaScript作用域拾遗

【前端工程师手册】JavaScript作用域拾遗 昨天总结了一些作用域的知识【前端工程师手册】JavaScript之作用域,但是发表完发现忘记了一些东西,今天拾个遗。 昨天说到了JavaScript中没有块级作用域,其实在es6中是有的。 es6中的块级作用域 先举…

游戏开发中的数据表示

声明:本文内容源自腾讯游戏学院程序公开课_服务端 一、数据表示的基础 什么是数据表示? 数据是信息的载体。 数据表示是一组操作,可以描述、显示、操作信息。 数据表示的要素 IDL - 接口描述语言 IDL是用来描述软件组件接口的一种计算机语言。…

29--反转字符串

文章目录1.问题描述2.代码详情1.问题描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中…

什么是临界区

临界区[1] 指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个 线程 访问的特性。当有线程进入临界区段时,其他线程或是 进程 必须等待(例如:bo…

BZOJ 2957 楼房重建 (分块)

题解:分块,然后暴力维护每一块上升序列,注意是不是最长上升序列,二分查找第二块中大于第一块的最后一个上升序列中的数。 注意:每一块的大小不要用√n会T掉的,把块的大小设为500-600都可以(T了一…

OpenBSD 5.1 正式版发布

OpenBSD 开发团队于近日发布了 5.1 正式版。 OpenBSD是一个从NetBSD衍生出来的类Unix操作系统。项目领导人Theo de Raadt在1995年发起了OpenBSD项目,希望创造一个注重安全的操作系统,此外OpenBSD也以高品质的文件、坚持开放程式码以及严格的软件授权著名…

Spring事务传播行为7种类型 --- 看一遍就能记住!

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、Spring 事务传播行为一共有7种类型,主要分为3类: 1)支持当前事物、 2)不支持当前事…