对象转型

向上造型

什么是向上造型?
子类对象赋给父类引用。
父类引用指向子类对象。

子类转成父类 默认进行(父类引用指向子类对象)。

为什么需要向上造型?
子类对象可以放入父类类型的数组中。
父类数组同一管理所有子类对象。
减少代码冗余
向上造型的格式:

父类类型 引用=子类对象;
Pet p=new Dog();

向上造型的特性:
向上造型后的父类引用,只能调用到父类中的成员,不能调用到子类特有的成员。

向下转型(强制类型转换):

什么是类型转换?
就是将一个类型的引用,转换成另一个类型。
为什么需要类型转换?
父类引用无法调用到子类特有的成员如果必须要调用,就需要类型转换。

父类转成子类 强制进行。

强制类型转换的注意事项:
如果将一个A子类的引用强转成B子类,会发生类型转换异常ClassCastException为了防止这样的异常发生在强转前,一般要先判断一下实际的类型

关键字:

instanceof:测试左边的对象是否是右边类的实例,

如果是返回true否则fasle。

<对象> instanceof <类型> 

方法重写(方法覆盖,override)
什么是方法重写?
子类不满父类中某个方法的功能,重新编写父类方法的现象。
什么需要方法重写?
父类中的方法不能满足子类的要求。
如何进行方法重写?
简单的方法重写:
在子类中编写一个和父类中的某个方法,方法名相同,参数列表相同,访问修饰符和返回值也相同的方法。
方法重写的效果:
在向上造型的前提下
指向子类对象的父类引用
在调用被子类重写的方法时
运行的是子类重写后的方法
方法重写的运行期绑定:
父类引用在运行方法时
jvm会检测这个父类引用指向的
真实类型,调用真实类型重写后的方法
方法重写的详细规则:
必须相同的方法名,参数列表
可以不同的
返回值:
基本数据类型。
必须相同引用数据类型。
可以返回其子类
访问修饰符:
子类重写的方法的访问修饰符,
不能比父类更严格

访问修饰符类型:
public
protected
默认
private

重载和重写的区别?

位置    方法名    参数   返回值   修饰符

重载:同类     相同        不同     无关     无关

重写:子类     相同        相同     相同     相同

重载:只看同名方法的参数列表。编译期绑定

重写:子父类方法要一模一样。运行期绑定

Day04:继承的意义(下)的更多相关文章

  1. Unit04 - 继承的意义(下) 、 访问控制 、 static和final

    Unit04  -  继承的意义(下) . 访问控制 . static和final 1.方法的重写(Override):重新写.覆盖  1)发生在父子类中,方法名称相同,参数列表相同,方法体不同  2 ...

  2. Unit03 - 对象内存管理 、 继承的意义(上)

    Unit03 - 对象内存管理 . 继承的意义(上) 1.内存管理:由JVM来管理的  1)堆:    1.1)存储所有new出来的对象(包含成员变量)    1.2)没有任何引用所指向的对象就是垃圾 ...

  3. HDU - 5755:Gambler Bo (开关问题,%3意义下的高斯消元)

    pro:给定N*M的矩阵,每次操作一个位置,它会增加2,周围4个位置会增加1.给定初始状态,求一种方案,使得最后的数都为0:(%3意义下. sol:(N*M)^3的复杂度的居然过了.          ...

  4. maven工程聚合和继承的意义

    聚合的意义: 对于一个大型的项目,如果我们直接作为一个工程开发,由于相互之间的依赖我们只能从头到尾由一组人开发,否则就会出现一个类好多人开发,相互更改的混乱局面,这个时候我们就将项目进行了横向和纵向的 ...

  5. HDU 5627 Clarke and MST &意义下最大生成树 贪心

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5627 题意:Bestcoder的一道题,让你求&意义下的最大生成树. 解法: 贪心,我们从高位 ...

  6. 李雅普诺夫函数 LyapunovFunction 李雅普诺夫意义下的稳定性

    https://zh.wikipedia.org/zh-hans/李亞普諾夫函數 李雅普诺夫函数(Lyapunov function)是用来证明一动力系统或自治微分方程稳定性的函数.其名称来自俄罗斯数 ...

  7. 2019牛客暑期多校训练营(第九场)B:Quadratic equation (二次剩余求mod意义下二元一次方程)

    题意:给定p=1e9+7,A,B.  求一对X,Y,满足(X+Y)%P=A; 且(X*Y)%P=B: 思路:即,X^2-BX+CΞ0;  那么X=[B+-sqrt(B^2-4C)]/2: 全部部分都要 ...

  8. hdu 6088 Rikka with Rock-paper-scissors (2017 多校第五场 1004) 【组合数学 + 数论 + 模意义下的FFT】

    题目链接 首先利用组合数学知识,枚举两人的总胜场数容易得到 这还不是卷积的形式,直接搞的话复杂度大概是O(n^2)的,肯定会TLE.但似乎和卷积有点像?想半天没想出来..多谢Q巨提醒,才知道可以用下面 ...

  9. 模意义下的FFT算法

    //写在前面 单就FFT算法来说的话,下面只给出个人认为比较重要的推导,详细的介绍可参考 FFT算法学习笔记 令v[n]是长度为2N的实序列,V[k]表示该实序列的2N点DFT.定义两个长度为N的实序 ...

随机推荐

  1. 清北学堂dp图论营游记day2

    上午讲数位dp和背包问题. 先讲背包: 完全背包:换了个顺序: 多重背包: 多重背包优化: 这样把每个物品分成这些组,那么把他们转变成不同的物品,就变成了01背包问题: 滑动窗口取最值问题.单调队列优 ...

  2. spfa算法及判负环详解

    spfa     (Shortest Path Faster Algorithm) 是一种单源最短路径的算法,基于Bellman-Ford算法上由队列优化实现. 什么是Bellman_Ford,百度内 ...

  3. docker 创建容器时指定容器ip

    Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定. 在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的. 我们可以创建自己的bri ...

  4. Kendo UI for jQuery使用教程:使用MVVM初始化(一)

    [Kendo UI for jQuery最新试用版下载] Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support ...

  5. mybatis 中 if-test 判断大坑

    [<if test="takeWay == '0'">]mybatis的if判断 单个的字符要写到双引号里面才行,改为<if test='takeWay == & ...

  6. k8s-insight测试

    eureka apiVersion: v1 kind: Pod metadata: name: eureka labels: ccb: eureka spec: containers: - name: ...

  7. border-box与content-box的区别

    ㈠box-sizing 属性 ⑴box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素. ⑵语法:box-sizing: content-box|border-box|inherit; ...

  8. cordova打包遇到Connection timedout:

    在cordova项目打包时,有时候处在公司内网环境,导致有些文件无法下载报下面的错误: A problem occurred configuring root project 'android'. & ...

  9. python爬取智联招聘职位信息(多进程)

    测试了下,采用单进程爬取5000条数据大概需要22分钟,速度太慢了点.我们把脚本改进下,采用多进程. 首先获取所有要爬取的URL,在这里不建议使用集合,字典或列表的数据类型来保存这些URL,因为数据量 ...

  10. 使用ElementUI创建项目

    从 0 开始搭建 element 项目 第一步,安装 Nodejs/NPM https://nodejs.org/zh-cn/download/ 下载安装即可! 第二步,安装 vue-cli 打开 c ...